我一直在通过谷歌寻找这个问题,但事实证明我找不到解决这个问题的方法。实际上,我有一个经典的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);
}
}
我在这里没有看到任何特别的问题,那么这个问题从何而来?你知道我该怎么解决这个问题吗?
谢谢。
未注释的主方法是一个 CheckStyle 警告,警告main()
方法未注释掉。代码中不应包含调试/测试 main()
方法。
您可以使用以下内容排除程序入口点类:
<module name="UncommentedMain">
<property name="excludedClasses" value=".Main$"/>
</module>
另请参阅 http://checkstyle.sourceforge.net/config_misc.html#UncommentedMain
从文档中:
检查未注释的 main() 方法。
基本原理:
main()
方法通常用于调试目的。调试完成后, 开发人员经常忘记删除该方法,这会更改 API 并增加 生成的类或 JAR 文件。除了实际程序入口点外,所有main()
方法应从源中删除或注释掉。
您可以使用以下@SuppressWarnings来禁止显示警告:
@SuppressWarnings("uncommentedmain")
public class YourClass {
...