在Spring启动应用程序中启动checkstyle分析时出现此错误:
SpringBootBackend.java:7:1 error: Les classes utilitaires ne doivent pas avoir de constructeur par défaut ou public.
代码:
public class SpringBootBackend{
public static void main(String[] args) {
SpringApplication.run(SpringBootBackend.class, args);
}
}
有任何帮助吗?
答案 0 :(得分:2)
仅包含静态方法的类被视为"实用程序类"通过这个检查。这些类应该只有私有构造函数,因此它们不会被意外地实例化。它们也应该是final
。
因此,您可以添加如下构造函数:
private SpringBootBackend() {}
并且可能声明类final
,错误应该消失。
答案 1 :(得分:1)
创建一个禁止检查文件checkstyle-suppressions.xml
<?xml version="1.0"?>
<!DOCTYPE suppressions PUBLIC
"-//Puppy Crawl//DTD Suppressions 1.0//EN"
"http://www.puppycrawl.com/dtds/suppressions_1_0.dtd">
<suppressions>
<suppress files="SpringBootApplication.java" checks="HideUtilityClassConstructor" />
</suppressions>
在maven-checkstyle-plugin
插件配置中,添加checkstyle-suppressions.xml
<configuration>
<configLocation>quality/checkstyle.xml</configLocation>
<suppressionsLocation>quality/checkstyle-suppressions.xml</suppressionsLocation>
答案 2 :(得分:0)
虽然从checkstyle的角度来看,上一个答案在技术上是正确的,但在这种情况下它不会起作用,因为Spring Boot会尝试创建这个类的实例,但由于private
构造函数它会失败
在这种情况下,我决定使用注释来抑制此违规行为:
@SuppressWarnings("checkstyle:hideutilityclassconstructor")
public static void main(String[] args) {