首先我们要知道,工具类是可以实例化的,只是没有必要去实例化。
定义:工具类是为了提供一些通用类的某一非业务领域内的公共方法,不需要配套的成员变量,仅仅是作为工具方法被使用。所以将它做成静态方法最合适,不需要实例化,能够获取到方法的定义并调用就行。
不实例化的原因:如果要实例化一个工具类,就需要一定的内存空间,工具类提供的是静态方法,通过类就能调用,所以不必浪费内存去实例化工具类对象。
那么如何让工具类不能被实例化呢?
让一个工具类不能被实例化的方法:使用私有构造器
public class A {
private classA(){}
}
由此想到让一个类不能被实例化应该怎么做?
答:使用私有构造器,在构造器中添加限制;
分析:在使用私有构造器的基础下,再在构造方法中返回一个异常,因为虽然外部类无法实例化该类,但是内部类可以实例化该类。
如果只是通过私有化构造器,那么通过反射的方式,还是可以实例化该类。
必须在私有构造器中添加一个异常,这样,当执行构造方法的时候,就会抛出异常,从而停止实例化。
具体实现参考:https://www.cnblogs.com/ttylinux/archive/2017/03/05/6504822.html