如何分配 ArrayList>将对象键入 List>; Java中的变量
- >; Java中的变量
要通过合同或接口进行编程,我定义一个这样的类:
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 的定义中隐藏具体容器类型吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以实例化一个包含
List
类型对象的ArrayList
:You can instantiate an
ArrayList
which contains objects of typeList<ClsA>
:应该有效。 Java 泛型是草率且令人困惑的,并且没有多大意义。
如果您需要解释,请阅读此处。我宁愿使用更好的语言。
Should work. Java generics are sloppy and confusing and don't make a whole lot of sense.
Read here if you want an explanation. I'd rather just use a better language.