java – 静态方法返回内部类

前端之家收集整理的这篇文章主要介绍了java – 静态方法返回内部类前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我真的不明白为什么下面的getMyClass2方法不能是静态的,为什么它不是有效的 Java代码
  1. public class MyClass
  2. {
  3. private class MyClass2
  4. {
  5. public String s1 = "";
  6. public String s2 = "";
  7. }
  8.  
  9. private MyClass2 myClass2;
  10.  
  11. private static MyClass2 getMyClass2()
  12. {
  13. MyClass2 myClass2 = new MyClass2();
  14. return myClass2;
  15. }
  16.  
  17. public MyClass()
  18. {
  19. myClass2 = getMyClass2();
  20. }
  21. }

解决方法

你必须说内部类是静态的,因为非静态绑定到实例,所以它不能从静态方法返回
  1. public class MyClass
  2. {
  3. private static class MyClass2
  4. {
  5. public String s1 = "";
  6. public String s2 = "";
  7. }
  8.  
  9. private MyClass2 myClass2;
  10.  
  11. private static MyClass2 getMyClass2()
  12. {
  13. MyClass2 myClass2 = new MyClass2();
  14. return myClass2;
  15. }
  16.  
  17. public MyClass()
  18. {
  19. myClass2 = getMyClass2();
  20. }
  21. }

猜你在找的Java相关文章