如何在java中将ArrayList转换为ArrayList

我有一个方法setData(ArrayList< super> list),所以任何想要设置数据的人都可以拥有自己的实体,只需要从超类扩展即可.但是当他们调用setData时,他们如何将ArrayList转换为ArrayList?

现在我使用setData(new ArrayList(list)),但这不是一个好的解决方案.

任何人都可以告诉我如何转换或其他解决方案可以避免这个问题.非常感激!

这取决于你之后要对列表做什么.如果你只是想从中读取,你可以这样声明你的方法:

setData(ArrayList<? extends SuperType> list)

但是,你不能在该列表中添加任何内容,因为你不知道什么?是.另一种选择是在调用方法时创建副本:

List<SubType> subtypeList = ...;
setData(new ArrayList<SuperType>(subtypeList));
翻译自:https://stackoverflow.com/questions/9661606/how-to-convert-arraylistsubclass-to-arraylistsuper-in-java

转载注明原文:如何在java中将ArrayList转换为ArrayList