将构造函数设为私有,并且没有外部可以访问的任何其他构造函数,会使类 无法实例化 。
但是,您无法避免使用来访问它
Reflection API。使用反射,您可以执行通常不允许的操作。
但是,如果你真的想你的类是 不可实例 ,甚至通过 反射 ,你可以
throw一个 未经检查的异常 从 构造函数 。
private MyClass() { throw UnsupportedOperationException("Can't instantiate class");}在这种情况下,使用
Constructor#newInstance()方法创建实例时,它将抛出一个
InvocationTargetException@注释中引用的。
这是
Constructor#newInstance()method
的文档,它声明要抛出的异常列表,其中一个是
InvocationTargetException,它说:-
throws:
InvocationTargetException-如果基础构造函数抛出异常。



