我还是 Java 的新手,我尝试创建一个内部类并调用 main 中的方法。有一个编译错误说
Non static variable - This cannot be referenced from a static context
请帮忙
class Class1{
public static void main(String args []){
Class2 myObject = new Class2();
myObject.newMethod();
}
public class Class2{
public void newMethod(){
System.out.println("Second class");
}
}
}
最佳答案
内部 类需要引用外部 类的实例才能构造。如果您的类在逻辑上不需要它,则使用 static
修饰符使其“只是一个嵌套类”:
public static class Class2 {
public void newMethod(){
System.out.println("Second class");
}
}
编辑:要将 Class2
的实例创建为 inner 类,您可以使用如下内容:
Class1 outer = new Class1();
Class2 myObject = outer.new Class2();
或者更简单地说:
Class2 myObject = new Class1().new Class2();
...但是除非您真的想要对封闭实例的引用,否则将类设为嵌套类要简单得多。
关于java - Java 中的内部类 - 非静态变量错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12913731/