此代码出现转换错误,我不确定为什么会发生。
错误是:
slideToggle
它出现在代码的每个部分,在List for ListNode中使用.data。
我标记了出错的行。
有什么想法吗?
List.java:131: error: incompatible types: Comparable cannot be converted to T
this.insertAtFront(remove.firstNode.data);
这是ListNode类:
public class List<T extends Comparable<T>> {
private ListNode firstNode;
private ListNode lastNode;
private String name;
public List(String listName){
name=listName;
firstNode=lastNode=null;
}
public T removeAt(int k) throws ListIndexOutOfBound {
List remove = new List();
T o;
if(k < 0 || k > checkSize()) throw new ListIndexOutOfBound();
for(int i = 0; i < k; i++){
try {
remove.insertAtFront(firstNode.data);
this.removeFromFront();
} catch (Exception e) {
while(!remove.isEmpty()){
this.insertAtFront(**remove.firstNode.data**);
remove.removeFromFront();
}
throw new ListIndexOutOfBound();
}
}
**o = firstNode.data;**
this.removeFromFront();
while(!remove.isEmpty()){
this.insertAtFront(**remove.firstNode.data**);
remove.removeFromFront();
}
return o;
}
}
答案 0 :(得分:0)
当您查看List类时,您会发现firstNode和lastNode的定义都不包含泛型类型信息!
所以改为
ListNode<T> firstNode
这个问题应该消失。创建&#34;删除&#34;名单。
省略了通用信息,创建了所谓的原始类型。每次这样做时都会收到警告。不要忽视这个警告 - 只需修复你使用原始类型的所有地方!