笔记 - 私有构造器捕获模式

笔记 - 私有构造器捕获模式

看到一个比较有意思的东西–私有构造器捕获模式。

下面代码可以看到在testA处有个编译错误:Cannot reference ‘PrivateConstructor.testA’ before supertype constructor has been called。此处是说不能在超类构造器调用之前引用testA

错误实例

尝试解释一下,由于PrivateConstructor这个类继承自Parent,然后在构造的时候,先从Parent构造起来,由于PrivateConstructor构造器指明调用父类的带参数构造器,调用Parent的一个带参数的构造器。但是因为在PrivateConstructor构造器中,调用了还没被初始化的testA,所以报出了编译错误。

但是,有个很奇妙的方法,父类不用动,子类稍微改变一下

私有构造器捕获模式

现在就可以正常了,神奇的东西。这个东西也是在《Java并发编程实战》旁注上看到的,比较巧妙,里面提及到这样可以解决一些竞争条件。

-------------本文结束感谢您的阅读-------------