如果一个类包含一堆静态方法,为了确保没有人错误地初始化这个类的实例,我做了一个私有(private)构造函数:
private Utils() {
}
现在 .. 既然看不到构造函数,怎么能测试呢?这可以被测试覆盖吗?
最佳答案
使用反射,您可以调用私有(private)构造函数:
Constructor<Util> c = Utils.class.getDeclaredConstructor();
c.setAccessible(true);
Utils u = c.newInstance(); // Hello sailor
但是,您甚至可以做到这一点:
private Utils() {
throw new UnsupportedOperationException();
}
通过在构造函数中抛出异常,您可以阻止所有尝试。
我也会让类本身 final
,只是“因为”:
public final class Utils {
private Utils() {
throw new UnsupportedOperationException();
}
}
关于java - 如何在 Java 应用程序中测试私有(private)构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14077842/