gpt4 book ai didi

java - 为什么Java迭代器构造函数签名没有迭代器类型?

转载 作者:行者123 更新时间:2023-11-30 06:18:11 25 4
gpt4 key购买 nike

这可能只是关于 Java 迭代器构造函数的签名布局的问题。

必须在类定义中指定迭代器类型(作为抽象类型 T 或其他);因此,为什么其相应的构造函数 public GunmenIterator(List list) 不包含此 T迭代器类型?虽然,通常是通用类型 T在迭代器中使用,这只是为了匹配其他方法而选择的设计吗?

public class GunmenIterator<T> implements Iterator<T> {

private List<T> list;
private Iterator<T> iter;

public GunmenIterator(List<T> list) {
this.list = list;
this.iter = list.iterator();
}

public static void main(String[] args) {
Iterator<Integer> gunmenIter = new GunmenIterator<Integer>(gunmen);
}
}

如上所示,迭代器类型<Integer> 应该出现在初始化中(否则,会有编译器警告)。然而,<T>不能添加到构造函数的签名中。

最佳答案

你不需要<T>在构造函数签名中,因为构造函数是类 GunmenIterator<T> 的构造函数.因此,它的构造函数创建了一个 GunmenIterator<T> 是隐含的。 .

重复 <T>会是多余的。构造函数总是创建它所属的类的实例。

关于java - 为什么Java迭代器构造函数签名没有迭代器类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24980432/

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