我一直在通过谷歌寻找这个问题,但事实证明我找不到解决这个问题的方法。实际上我有一个经典的main
方法,我在其中运行一个工作,但是sonarqube一直在重复我,发现了一个未注释的主方法。
以下是代码:
/**
* Main : Run MapReduce job
*
* @param args
* arguments
*/
public static void main(String[] args) {
ExitManager exitManager = new ExitManager();
// run job
if (!runJob(args)) {
exitManager.exit(1);
}
}
我在这里没有看到任何特殊问题,那么这个问题从何而来?你知道我怎么解决这个问题吗?
感谢。
答案 0 :(得分:8)
取消注释的主方法是一个CheckStyle警告,表示main()
方法未被注释掉。您不应该在代码中使用调试/测试main()
方法。
您可以使用以下内容排除程序入口点类:
<module name="UncommentedMain">
<property name="excludedClasses" value="\.Main$"/>
</module>
另见http://checkstyle.sourceforge.net/config_misc.html#UncommentedMain
答案 1 :(得分:3)
检查未注释的main()方法。
基本原理:
main()
方法通常用于调试目的。调试完成后, 开发人员经常忘记删除方法,这会改变API并增加其大小 生成的类或JAR文件。所有main()
除了真正的程序入口点之外 方法应该从消息来源中删除或注释。
答案 2 :(得分:1)
您可以使用@SuppressWarnings禁止警告:
@SuppressWarnings("uncommentedmain")
public class YourClass {
...