Inner classes in Java - Non static variable error

前端 未结 4 1979
孤街浪徒
孤街浪徒 2020-12-04 00:35

Im still new to java and i tried to create a inner class and call the method inside main. But theres a compilation error saying \"Non static variable - This cannot be refere

4条回答
  •  一整个雨季
    2020-12-04 01:30

    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 static modifer to make it "just a nested class":

    public static class Class2 {
        public void newMethod(){
            System.out.println("Second class");
        }
    }
    

    EDIT: To create an instance of Class2 as an inner class, you could use something like:

    Class1 outer = new Class1();
    Class2 myObject = outer.new Class2();
    

    Or more briefly:

    Class2 myObject = new Class1().new Class2();
    

    ... but unless you really want a reference to an enclosing instance, it's much simpler to make the class just a nested class.

提交回复
热议问题