我有一个列表,我需要返回相同类型的列表。

如果相关,在我的情况下,Y是接口,而接口X是其超级接口。

我假设我需要使用newInstance来获取List的类型。

public List<Y> foo() {
    List<X> xList = -a method that returns List<X>-;
    List<Y> yList = xList.getClass().newInstance(); //Is this right?

    ...

    return yList;
}


我可以创建一个ArrayList,但是我不知道这是否是最好的选择,因为我可以接收任何类型的列表。

最佳答案

您是否要混合使用List的类和其泛型?几乎不需要返回List的特定实现(例如,如果需要可序列化)。我建议仅使用预先设置了适当大小的ArrayList

关于接口,请小心,因为如果Y扩展X,则通常无法将xList中的对象放入yList中(我想您要这样做),因为可能存在X的列表中的cc>。

08-05 13:22