访问具有同名变量的匿名内部类中的本地方法变量

时间:2017-12-06 10:07:59

标签: java

我在方法中有两个同名的变量,另一个在该方法内的匿名内部类中。如何在匿名类中访问方法而无需重命名任何方法?

public void doSomething() {
   final String s = "method string";
   new Runnable() {
      public void run() {
         String s = "anonymous inner class string";
         // how can I access the method string here without the need to rename any of the variables
      }
   };
}

我知道这可以通过重命名任何变量来解决,但我想知道是否有更聪明的方法。

1 个答案:

答案 0 :(得分:0)

如果您不想重命名任何变量,则可以创建另一种方法来访问method string变量。像这样:

final String s = "method string";
Runnable runnable = new Runnable() {
    public void run() {
        String s = "anonymous inner class string";
        String outerS = getS();
        System.out.println(outerS);
        System.out.println(s);
        // how can I access the method string here without the need to rename any of the variables
    }

    public String getS() {
        return s;
    }
}; 

此处创建方法getS()以访问method string变量。