有没有办法制作嵌套类对象列表?
我定义了这样的嵌套类:
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);
谢谢!
答案 0 :(得分:1)
它不适用于该语法。 A
和B
都不会与AB
相关(也就是说,它们不能代替AB
分配),即使它们是嵌套的。
此外,如果声明为static
,您将无法访问封闭类之外的那些类。
你应该做的是:
将您的班级声明更改为以下内容:
public static class A extends AB { }
public static class B extends AB { }
...然后,我们发现A
和B
都与AB
相关(也就是说,可以指定它们来代替AB
)。
更正AB.A
和AB.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);