【问题标题】:Cannot access public field on public inner class无法访问公共内部类的公共字段
【发布时间】:2013-09-11 19:26:23
【问题描述】:

我有以下测试代码:

public class Main {

public static void main(String[] args) {
    new Main();
}

public Main() {
    int А = new Main2().А;
    System.out.println(А);
}

public class Main2 {
    public int A = 0;
}

}

运行时出现此错误:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
А cannot be resolved or is not a field

at Main.<init>(Main.java:10)
at Main.main(Main.java:6)

为什么我不能从它的外部类访问 Main2.A()?

【问题讨论】:

    标签: java class field public


    【解决方案1】:

    A 中的字符

    int А = new Main2().А;
    

    不是 UTF-8 字符,并且与 Main2 类中变量名中使用的字符不同。从内部类复制粘贴A 并使用它。它会编译。

    【讨论】:

      【解决方案2】:
      public class Main {
          public static void main(String[] args) {
              new Main();
          }
      
          public Main() {
              Main2 m = new Main2();
              System.out.println(Integer.toString(m.A));
          }
      
          class Main2 {
              public int A;
              public Main2() {
                  A = 0;
              }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2016-09-09
        • 2013-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-24
        • 1970-01-01
        • 2020-06-20
        相关资源
        最近更新 更多