java - 隐藏变量并访问它们?

标签 java class scope local shadowing

我有一个代码,但我遇到了一些问题。

public class Out {
  int value = 7;
  void print() {
    int value = 9;//how to access this variable
    class Local {
      int value = 11;
      void print() {
        int value = 13;
        System.out.println("Value in method: " + value);
        System.out.println("Value in local class: " + this.value);
        System.out.println("Value in method of outer class: " + value);//here
        System.out.println("Value in outer class: " + Out.this.value);
      }
    }
  }
}

上面的代码描述了我的问题。

最佳答案

根本不能,因为它需要传递到 Local 的构造函数中,因为它不是类的成员字段,而是本地方法变量。

按照Andy的建议,你可以使用不同的名称将其设为final,在这种情况下,编译器会将其隐式传递给Local构造函数,并将其保存为Local的成员字段(你可以使用javap查看详细信息)。

关于java - 隐藏变量并访问它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30046247/

相关文章:

java - 使用 Java 从类数组创建类的新实例

java - 是否有每个选项卡都不同的 session bean(Java/JSF 托管 bean,而不是浏览器 session )

javascript - JS : Assigning a variable in the parent scope of a closure costs performance. 为什么?

javascript - 将 Typescript 转换为 Javascript 的最佳实践

class - CDI - 在运行时动态注入(inject)对象

Java多线程: how does thread creation with Runnable interface work?

java - 测量 double 与 BigDecimal

java - 默认构造函数,Java 与 C++

java - 如何验证连接池是否正常工作

javascript - 类参数的继承