【发布时间】:2015-06-10 02:03:15
【问题描述】:
在Java中,为什么迭代器不能返回一个具体的数据类型。 例如:
//access via Iterator
Iterator iterator = queueA.iterator();
while(iterator.hasNext(){
String element = (String) iterator.next();
}
我必须明确地将其转换为 String。
为什么迭代器不能自动返回String?
【问题讨论】:
-
您编译的 Java 版本是什么? Java 1.5(或 5)及更高版本支持generics,如果您的
queueA的迭代器方法返回一个为String键入的通用Iterator,您可以执行Iterator<String>。 -
它可以返回一个具体的类型。您似乎错过了将泛型引入 Java 的事实,over ten years ago。