通过合同或接口编程,我定义了一个这样的类:
public ClsOne{
private List<IntfA> fieldA;
public setFieldA(List al);
}
public ClsA implements IntfA{...}
然后在其他地方,我们可以这样写:
....
ArrayList<ClsA> alist = new ArrayList<ClsA>();
ClsOne one = new ClsOne();
one.setFieldA(alist);
但是,这似乎不适用于嵌入式容器:
public ClsTwo{
private List<List<IntfA>> fieldA;
public setFieldA(List<List<IntfA>> al);
}
public ClsA implements IntfA{...}
由于以下代码不正确:
ArrayList<ArrayList<ClsA>> aalist = new ArrayList<ArrayList<ClsA>>();
ClsOne one = new ClsOne();
one.setFieldA(aalist);
那么,在这种情况下,是否有任何隐藏ClsA定义的混凝土容器类型的工作?
最佳答案
您可以实例化一个ArrayList
,其中包含List<ClsA>
类型的对象:
ArrayList<List<ClsA>> aalist = new ArrayList<List<ClsA>>();
ClsOne one = new ClsOne();
one.setFieldA(aalist);