我真的不明白为什么下面的getMyClass2方法不能是静态的,为什么它不是有效的
Java代码?
public class MyClass { private class MyClass2 { public String s1 = ""; public String s2 = ""; } private MyClass2 myClass2; private static MyClass2 getMyClass2() { MyClass2 myClass2 = new MyClass2(); return myClass2; } public MyClass() { myClass2 = getMyClass2(); } }
解决方法
你必须说内部类是静态的,因为非静态绑定到实例,所以它不能从静态方法返回
public class MyClass { private static class MyClass2 { public String s1 = ""; public String s2 = ""; } private MyClass2 myClass2; private static MyClass2 getMyClass2() { MyClass2 myClass2 = new MyClass2(); return myClass2; } public MyClass() { myClass2 = getMyClass2(); } }