Maven Java未警告非穷举开关
如果打开枚举,既不覆盖所有情况,也不提供默认值,那么获取编译器警告将非常有用。这个站点上的其他答案建议javac应该提供这样的警告 我正在使用Maven,并在pom.xml中添加了以下内容,以尝试启用所有警告: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
<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版本,当然还有示例代码,如果您愿意成为问题的一部分来重现错误的话。