如何在java中访问匿名外部类的“this”引用
2022-09-04 02:24:22
我有以下问题。两种嵌套的匿名类型。我想在最内部的类内访问外部匿名类的“this”引用。通常,如果一个人在命名的外部类(让我们称之为“类Outer”)中有匿名嵌套类,他/她会在嵌套类中键入。如果外部类是匿名的,我如何引用它?示例代码:Outer.this.someMethod()
public interface Outer {
void outerMethod();
}
public interface Inner {
void innerMethod();
}
...
public static void main(String[] args) {
...
new Outer() {
public void outerMethod() {
new Inner() {
public void innerMethod() {
Outer.this.hashCode(); // this does not work
} // innerMethod
}; // Inner
} // outerMethod
}; // Outer
...
} // main
我得到的错误是
在作用域中无法访问 Outer 类型的封闭实例
我知道我可以像这样复制引用:
final Outer outerThisCopy = this;
就在实例化对象之前,然后引用此变量。真正的目标是,为了调试目的,我想比较对象内部访问的对象(即 )的哈希码和哈希码。我有一些很好的论据认为这两个对象是不同的(在我的情况下)。[上下文:论点是调用在“Outer”类中实现的 getter,该 getter 未在 “Inner” 类中隐藏,则返回不同的对象]Inner
outerThisCopy
new Inner
Outer.this
任何想法如何访问封闭匿名类型的“this”引用?
谢谢。