我有一个无法更改的第三方库类,它有一个 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.
,但收到相同的错误消息。
当然,我可以创建一个非匿名后代类并在其构造函数中设置变量。但是是否有可能直接在匿名类中初始化祖先实例变量呢?
最佳答案
您需要使用实例初始化 block :
LibraryClass myInstance = new LibraryClass() {
{
instanceVar = true;
}
};
注意额外的一对大括号。
关于java - 如何从匿名类设置祖先实例变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51303672/