Java 是否有语法从另一个匿名内部类获取对匿名内部类的引用?
考虑这种情况:Java 是否有语法从另一个匿名内部类获取对匿名内部类的引用?,java,syntax,anonymous-inner-class,Java,Syntax,Anonymous Inner Class,考虑这种情况: public class SomeClass { public void someMethod() { new SomeInterface() { public void someOtherMethod() { new SomeOtherInterface() { new someThirdMethod() {
public class SomeClass {
public void someMethod() {
new SomeInterface() {
public void someOtherMethod() {
new SomeOtherInterface() {
new someThirdMethod() {
//My question is about code located here.
}
};
}
};
}
}
在注释代码中是否有引用SomeInterface表示的匿名内部类实例的语法?对于SomeClass,您可以执行SomeClass。这个
是否有一个等价物来实现SomeInterface
如果没有,当然你可以在SomeInterface实现中定义一个最终的局部变量并引用它,但我只是想知道是否有直接的语言支持来引用实例。为什么
SomeInterface。这个不能编译是因为所包含的类不是SomeInterface
,而是某种匿名类型
您不能将限定的此与匿名类型一起使用。这就是为什么他们是匿名的;不能按名称引用它们,限定的此
通过显式命名封闭类型来工作
尝试以下方式很有诱惑力:
SomeClass$1.this
但随后出现一个错误,SomeClass$1无法解析为类型
;尽管事实上,如果让此代码在没有此行的情况下编译,它(很可能)将创建一个SomeClass$1.class
您可以使用非匿名类并使用限定的this
,也可以使用您提到的final
局部变量技术
工具书类