请帮助我了解第k3行上的java8编译器错误。
public class Color {
private int hue = 10;
public class Shade {
public int hue = 20;
}
public static void main(String[] args) {
System.out.println(new Color().hue); // k1
System.out.println(new Color().new Shade().hue); //k2
System.out.println(new Shade().hue); //k3
}
}
如果我注释掉k3,则上面的代码会编译。 k1输出10,k2输出20。
使用k3时,编译失败:
Color.java:11: error: non-static variable this cannot be referenced from a static context
System.out.println(new Shade().hue);
主要方法是在静态上下文中理解的。 图片中的非静态“ this”变量在哪里。 谢谢。