当然有这种方式:OuterClass.this.但那非常笨拙.理想情况下,有一个关键字outer就像super.
有没有办法反思性地做到这一点?(我没有找到任何方法,隐藏的outer引用似乎没有出现在结果中Class#getFields().)
也许在Java7中有一种方法?
编辑.考虑一下我刚发现的类似问题:
小智 9
唯一的方法是使用OuterClass.this引用包含类.
这不是问题,如果您需要多次引用包含的类实例,只需将其分配给局部变量,而不必多次处理此语法.final OuterClass oc = OuterClass.this;然后你只需oc在本地使用你需要做的事情.
拥有另一个关键字outer只会混淆正在发生的事情.语法OuterClass.this 明确定义了正在发生的事情,泛型关键字将隐藏包含类的标识,特别是如果它嵌套在多个内部类中.outer.this.outer.this.outer.this太可怕了!
这不是任何想象力的负担.特别是现代IDE.