【发布时间】:2018-07-12 10:47:18
【问题描述】:
我有一个无法更改的第三方库类,它有一个 protected 实例变量,我不会在实例化时将其设置为非默认值。这个类没有允许我设置这个实例变量的 setter 和构造函数。
我试过了
// The library class I cannot change:
public class LibraryClass {
protected boolean instanceVar = false;
}
// My code:
public class MyClass {
LibraryClass myInstance = new LibraryClass() {
instanceVar = true;
};
}
但在instanceVar = true; 行出现编译器错误“this. 和 super.,但得到了相同的错误消息。
当然,我可以创建一个非匿名后代类并在其构造函数中设置变量。但是有没有可能直接在匿名类中初始化祖先实例变量呢?
【问题讨论】:
-
在初始化块中。
-
也可以只设置值:
myInstance.instanceVar = true;(假设可以访问)
标签: java instantiation anonymous-class