標準春季啓動應用程序有一些主要方法的類文件,說SampleApplication.java
,看起來像這樣:爲什麼主要的Spring Boot應用程序總是觸發PMD的HideUtilityClassConstructorCheck?
@SpringBootApplication
@RestController
public class SampleApplication {
public static void main(final String[] args) {
SpringApplication.run(SampleApplication.class, args);
}
}
但PMD靜態分析其標記爲錯誤(HideUtilityClassConstructorCheck):
工具類 不應該有公共或默認的構造函數。
確保實用程序類(僅在其API中包含靜態 方法或字段的類)沒有公共構造函數。原理:實例化實用程序類沒有意義。因此 構造函數應該是私有的或者(如果你想允許 子類)受保護。一個常見的錯誤是忘記隱藏 默認構造函數。
如果您構造的保護,你可能要考慮 下面的構造實現技術,以禁止 實例子類:
公共類StringUtils的//不是最終允許子類{保護 StringUtils的(){//防止來自子類的調用拋出新的 UnsupportedOperationException(); } public static int count(char c, String s){// ...}}
這是爲什麼?我應該抑制這個PMD錯誤嗎?