java - 成员内部类变量访问
问题描述
你能帮我理解第 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”变量在哪里。谢谢。
解决方案
推荐阅读
- angular - 如何在 Angular 中动态生成上下文菜单
- python - Python / 自动化设备的 Netmiko 超时错误
- python - 将输入附加到方法参数列表
- python-3.x - 如何编译 java 文件并使用 pyjnius 和 kivy 导入它们
- parent-child - 将初始化的 Parent 对象的所有数据传递给它的子对象
- javascript - 赛普拉斯测试重定向到不同来源(跨域)
- python - 使用普通的 python 变量并将它们写入 configparser
- kivy - 向下滚动后,ScrollView 回弹/弹回顶部
- javascript - 如何从 package.json 脚本中正确调用 eslint?
- azure - 在隔离的 Azure Functions 中访问 URL 中的属性的正确方法是什么