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