Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven Java未警告非穷举开关_Java_Maven_Switch Statement_Compiler Warnings - Fatal编程技术网

Maven Java未警告非穷举开关

Maven Java未警告非穷举开关,java,maven,switch-statement,compiler-warnings,Java,Maven,Switch Statement,Compiler Warnings,如果打开枚举,既不覆盖所有情况,也不提供默认值,那么获取编译器警告将非常有用。这个站点上的其他答案建议javac应该提供这样的警告 我正在使用Maven,并在pom.xml中添加了以下内容,以尝试启用所有警告: <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> <configu

如果打开枚举,既不覆盖所有情况,也不提供默认值,那么获取编译器警告将非常有用。这个站点上的其他答案建议javac应该提供这样的警告

我正在使用Maven,并在pom.xml中添加了以下内容,以尝试启用所有警告:

    <plugin>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.8.0</version>
      <configuration>
        <compilerArgs>
          <arg>-Xlint:all</arg>
        </compilerArgs>
        <showDeprecation>true</showDeprecation>
        <showWarnings>true</showWarnings>
      </configuration>
    </plugin>

maven编译器插件
3.8.0
-Xlint:全部
真的
真的

但是编译器仍然对代码中的非穷举开关语句保持沉默。是否可以设置其他标志来启用此类警告?

我了解此类警告,因为:

  • 外部设置,
    Window->Preferences->Java->Compiler->Errors/Warnings/Enum-type常量未包含在开关上
  • 外部过梁,像一个
  • 外部工具,如,和
  • 外部项目,如
后者应该引起人们的兴趣:

注释处理器将确保您得到编译时错误。
该项目还包括一个部分枚举映射器类,您可能希望使用它来代替switch语句

项目是,因此您可以将其添加到依赖项中

重点仍然是:

-Xlint
这样的代码可能不足以捕获部分开关枚举用例。

它只会检测漏检情况:除了块中的最后一个情况,其代码不包含中断语句的
开关
块中的情况,允许代码执行从该情况“漏检”到下一个情况

为什么不进行Sonarint/Qube集成,在maven中,值得一提的是您正在使用的Java和maven版本,当然还有示例代码,如果您愿意成为问题的一部分来重现错误的话。