Java中的嵌套类列表?

时间:2014-01-21 07:28:07

标签: java list nested

有没有办法制作嵌套类对象列表?

我定义了这样的嵌套类:

public class AB{

    public class A {    }

    public class B {    }

我想列出这样的列表:

List<AB> listAB = new ArrayList<>();
AB.A objectA = AB.new A();
AB.B objectB = AB.new B();

listAB.add(objectA);
listAB.add(objectB);

谢谢!

2 个答案:

答案 0 :(得分:1)

它不适用于该语法。 AB都不会与AB相关(也就是说,它们不能代替AB分配),即使它们是嵌套的。

此外,如果声明为static,您将无法访问封闭类之外的那些类。

你应该做的是:

  • 将您的班级声明更改为以下内容:

    public static class A extends AB { }
    public static class B extends AB { }
    

    ...然后,我们发现AB都与AB相关(也就是说,可以指定它们来代替AB)。

  • 更正AB.AAB.B的实例化调用:

    AB.A objectA = new AB.A();
    AB.B objectB = new AB.B();
    

然后,您可以毫无困难地添加到列表中。

答案 1 :(得分:0)

制作AB的A和B子类。 A和B都应该是静态类。

public class AB{

public static class A extends AB {    }

public static class B extends AB{    }
}

然后你的清单就可以了:

List<AB> listAB = new ArrayList<AB>();
AB.A objectA = AB.new A();
AB.B objectB = AB.new B();

listAB.add(objectA);
listAB.add(objectB);