私有构造函数和最终实例变量

Private constructor and final instance variables

如果您使用未初始化的 final 变量和 private 默认构造函数创建 class,编译器会警告您有未初始化的 final 变量。这一切都很好,只是构造函数现在只是无法访问的代码。那么,这只是 Java 创作者的疏忽,还是有合乎逻辑的幕后原因?还是我假设构造函数是无法访问的代码错误?

好吧,无论构造函数访问级别如何 (private/public/protected/package),'screaming' 都会发生...这些问题将单独处理。

一方面,编译器确保调用 IF 构造函数(不知何故,奇迹般地),然后初始化所有最终变量。

然后在另一个层面上,我们担心构造函数的可达性。这有点复杂,因为显然您以后可以添加工厂方法,而且您可以使用丑陋的反射代码使用 "setAccessible(true)"

来实现它