变量的范围

Goh*_*ary 2 java variables android scope

如何在此代码中获取方法参数"myInteger"的值.

public void myMethod(int myInteger) {
    View.OnClickListener myClearHandler = new View.OnClickListener() {
        public void onClick(View v) {
            //***How can I get the value of "myInteger" here?***
        }
    };
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 11

假设你只是想它,你只需要让它最终:

public void myMethod(final int myInteger) {
    View.OnClickListener myClearHandler = new View.OnClickListener() {
        public void onClick(View v) {
            int foo = myInteger;
        }
    };
}
Run Code Online (Sandbox Code Playgroud)

在Java中,只能final在匿名内部类中访问参数和局部变量.

  • @Gohary:你不能在Java中分配这一点 - 关闭选项有些限制.您*可以*使用包装类型 - 例如数组 - 并更改内部类中包装器的内容.在你的情况下,这是否合适很难说. (2认同)