无法访问公共内部类的公共字段

时间:2013-09-07 23:55:26

标签: java class field public

我有以下测试代码:

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)

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

2 个答案:

答案 0 :(得分:4)

中的A字符
int А = new Main2().А;

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

答案 1 :(得分:0)

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;
        }
    }
}