gpt4 book ai didi

java - 列表中特定通用类型的列表

转载 作者:行者123 更新时间:2023-11-29 03:54:46 25 4
gpt4 key购买 nike

我有一个列表列表。

我想知道如何限制每个内部列表的泛型类型,以便外部列表的每个元素都包含一个只能包含一种对象类型的内部列表。到目前为止,我已经试过了:

List<ArrayList<?>> l = new ArrayList<ArrayList<?>>();

但是有一些方法可以将不属于的对象类型添加到内部列表中。有没有办法指定内部列表接受的类型?

例如,如果我有以下内部列表,

ArrayList<T1> innerList = new ArrayList<T1>();
ArrayList<T2> innerList2 = new ArrayList<T2>();
ArrayList<T3> innerList3 = new ArrayList<T3>();

我将如何创建一个外部列表,它可以包含所有内部列表,同时保留内部列表包含的特定类型。

我也不确定这是否可行,或者我所做的设计是否糟糕。如果它是糟糕的设计,我们将不胜感激更好的设计(也许有不同的系列可以做得更好)。

最佳答案

如果内部列表的类型没有共同点,则无法缩小范围,通配符 ? 是您能做的最好的。

如果T1 T2T3 都继承自基类B,那么你可以这样写:

List<List<? extends B>> outerList = new ArrayList<List<? extends B>>();

或者如果它们共享一个接口(interface),则同样如此。这取决于它们实现的共同功能要求它们存储在同一个列表中。

如果您需要设计方面的帮助,您需要通过示例/用例来说明您的情况。如果它们没有任何共同点,将它们放在同一个集合中可能不是好的设计。

关于java - 列表中特定通用类型的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6987506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com