I’m still new to Java and I tried to create an inner class and call the method inside main. There is a compilation error saying
Non static variable – This cannot be referenced from a static context
Please help
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");
}
}
}
An inner class needs a reference to an instance of the outer class in order to be constructed. If your class doesn’t logically need that, then use the
staticmodifer to make it “just a nested class”:EDIT: To create an instance of
Class2as an inner class, you could use something like:Or more briefly:
… but unless you really want a reference to an enclosing instance, it’s much simpler to make the class just a nested class.