我真的不明白为什么下面的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();
- }
- }