文章目录
思考
java 工具类是可以实例化的,只是完全没有必要罢了,因为工具类实际上提供的是在一些业务中通用的方法调用,将其做成静态的非常合适,无需实例化,若实例化就需要一定内存空间,工具类直接提供静态方法就可以避免 new 工具类对象
工具类不想被实例化直接思路
给工具类创建一个私有构造器,如下:
public class A{
private class A(){}
}
进一步思考
虽然使用了私有构造器,在外部构造会有异常,但实际上内部类可以实例化该类。若只是私有化构造器,也可以通过反射机制实例化该类。那这样是不是可以在私有构造器中添加一个异常,这样一旦这个有人想构造时候肯定会抛异常,如下
public class A{
private class A(){
throw new Error("此类不允许构造!");
}
}
ok,现在问题成功解决!