java – 为什么我得到“非静态变量这不能从静态上下文引用”?
发布时间:2020-12-14 05:31:10 所属栏目:Java 来源:网络整理
导读:我有一个非常简单的类,我想用作另一个的子类.但是当我把它的代码放在父级的类中时,我得到: non-static variable this cannot be referenced from a static context 另一方面,当我把GenTest子类的代码放在“父”的类代码之外 – JavaApp1时,我没有得到这个错
我有一个非常简单的类,我想用作另一个的子类.但是当我把它的代码放在父级的类中时,我得到:
另一方面,当我把GenTest子类的代码放在“父”的类代码之外 – JavaApp1时,我没有得到这个错误. public class JavaApp1 { class GenTest { @Deprecated void oldFunction() { System.out.println("don't use that"); } void newFunction() { System.out.println("That's ok."); } } public static void main(String[] args) { GenTest x = new GenTest(); x.oldFunction(); x.newFunction(); } } 为什么会这样? 解决方法
您的嵌套类(不是子类,顺便说一下)没有标记为静态,因此它是一个内部类,它需要编码类(JavaApp1)的一个实例来构造它.
选项: >使嵌套类静态化 GenTest x = new JavaApp1().new GenTest(); 就我个人而言,第二种方法 – Java中的嵌套类在它们周围有一些怪异的东西,所以我会使用顶级类,除非你有一个很好的理由让它嵌套. (最后的选择是特别凌乱,IMO.) 有关内部类的更多信息,请参阅section 8.1.3 of the JLS. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – 当方法之间的差异是参数子类型时,将null传递给重写
- Java将GIF图像转换为PNG格式
- java – 尝试将XLSX数据导入R时出现IllegalArgumentExcepti
- kotlin – 可以为Java类添加“static”扩展函数吗?
- Java描述设计模式(04):抽象工厂模式
- java – 如何从Hibernate MetadataSources中发现完全限定的
- java – 在spring mvc中按名称获取cookie值
- Spring Boot集成Sorl搜索客户端的实现代码
- java – 什么时候线程超出范围?
- java – PSQLException:错误:语法错误在或附近