我只是想在这样的泛型链表上初始化一个迭代器(泛型T似乎在这里被删除,因为该网站将其解释为标记)
public <T> LinkedList<T> sort(LinkedList<T> list){
Iterator<T> iter = new list.iterator();
...
但是我收到了错误:
“列表无法解析”
怎么了?
答案 0 :(得分:12)
删除new
关键字:
Iterator<T> iter = list.iterator();
答案 1 :(得分:6)
进一步澄清Mykola的正确答案:您正在尝试创建班级list
的新对象。所以你只想打电话给list.iterator()
(在其中的某个地方,它本身正在做new Iterator
或类似的东西并将其归还给你)。
由于您明确使用的是Java 5或更高版本,因此更好的方法可能是
public <T> LinkedList<T> sort(LinkedList<T> list){
Iterator<T> iter = new list.iterator();
while (iter.hasNext()){
T t = iter.next();
...
}
}
而是这样做:
public <T> LinkedList<T> sort(LinkedList<T> list){
for (T t : list){
...
}
}
更好的是,根本不要编写该方法,而是使用
Collections.sort(list);
答案 2 :(得分:1)
new运算符后跟的单词必须是Class名称。这里list.iterator()已经返回一个Object。所以在这一点上,新的是不必要的。