创建工具类或者常量类要创建私有化构造方法
一、问题描述
SonarLint代码审查中会报这个问题:Utility classes should not have public constructors,这个问题表示我们的工具类或者常量类中不应该有公共的构造方法(要使用单例模式)
二、解决方案
我们在新建工具类或者新建某个常量Const类,要创建一个私有的构造方法。因为我们不创带参构造的情况下,Java类会默认生成一个无参构造方法,但是一般工具类或者常量类是不允许通过new来实例化对象的,都是通过声明一个个静态方法或者变量,通过类名+ (.)点+ 方法来调用,所以注意像下图案例一样,要创建一个私有化的构造方法,覆盖掉原有的无参构造,让该类无法创建实例
或者是直接使用Lombok的注解@NoArgsConstrutor(access = AccessLevel.PRIVATE)。
该注解的作用是为该类生成一个无参构造。而access属性的作用是为该类的无参构造设置修饰符,在这里设置成private私有化,和上面直接显式的声明私有化的无参构造一样