gpt4 book ai didi

Java Iterable> 到 ArrayList>

转载 作者:行者123 更新时间:2023-12-02 11:22:16 26 4
gpt4 key购买 nike

也许我错过了一些东西,但我想如果我这样声明我的类:

public class Something<T> implements Iterable<Iterable<T>> {
public Something(Iterable<Iterable<T>> input) {
...

我应该能够实例化它:

ArrayList<ArrayList<String>> l = new ArrayList<ArrayList<String>>();

Something<String> s = Something<String>(l);

不幸的是,这给了我一个错误。我认为 ArrayList 是可迭代的,因此应该完全映射到我的构造函数定义。

最佳答案

您需要修改构造函数以接受扩展 Iterable<T> 的任何内容

public Something(Iterable<? extends Iterable<T>> list){}

这样做的原因是泛型类型不能从字面上扩展其他泛型类型。一个List<String>无法分配给 List<CharSequence> 。关键字extends允许发生这种类型的分配。

关于Java Iterable<Iterable<T>> 到 ArrayList<ArrayList<T>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5031074/

26 4 0