匿名内部类在访问其原语等时是否始终捕获对"this"(外部)对象的引用?

Nav*_*eur 7 java anonymous-inner-class instance-variables

如果我有

[编辑:添加"内部"的类型定义]

interface Inner{
    public void execute();
}

class Outer{
    int outerInt;
    public void hello(){
        Inner inner = new Inner(){
            public void execute(){
                outerInt=5;
            }
        }

        //later
        inner.execute();
    }
}
Run Code Online (Sandbox Code Playgroud)

调用将该特定对象inner.execute()outerInt变量设置为,无论它在何处被调用,并且只要该对象存在?或者它只是更改变量的副本而不影响原始对象? Outer5InnerouterIntOuter

SLa*_*aks 6

这将捕获并修改外部this.

请参阅规格


SLa*_*aks 4

要回答您新澄清的问题(从评论到我的其他答案):

是的
所有内部类和本地类都将引用其父类this,即使它们从不使用它。
演示