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

时间:2015-08-30 06:06:49

标签: java final private-constructor

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

1 个答案:

答案 0 :(得分:1)

好吧,无论构造函数访问级别(private / public / protected / package)如何都会发生'尖叫'......这些问题是分开处理的。

在一个层面上,编译器确保调用IF构造函数(不知何故,奇迹般地),而不是初始化所有最终变量。

然后在不同的层面上我们担心构造函数的可达性。这有点复杂,因为很明显你以后可以添加工厂方法,而且你可以用丑陋的反射代码使用“setAccessible(true)”来实现它