java – 静态方法返回内部类

前端之家收集整理的这篇文章主要介绍了java – 静态方法返回内部类前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我真的不明白为什么下面的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();
    }
}

猜你在找的Java相关文章