[英]Unchecked Cast warning in Java?
在這段代碼中,我在java中實現了一個通用鏈表。
public class LL<Item extends Comparable<Item>> {
我的Node類被定義為
private class Node{
private Item data;
private Node next;
public Node(Item data){
this.data = data;
next = null;
}
}
現在我的疑問是,我在編碼時不斷收到警告
Node x = head, y = (Node) b.head;
Type safety: Unchecked cast from LL.Node to LL<Item>.Node
我應該忽略這一點,為什么編譯器會生成它。 它有解決方法嗎?
編輯:
b是LL類型,函數簽名看起來像
public void mergeAlternate(LL b){
head是LL類的私有實例變量
private Node head;
如果您正在創建一個通用實現,那么它也應該是內部通用的。
您缺少Node
類的type參數。 它應該像這樣通用:
private class Node<T extends Comparable<T>> {
private T data;
private Node<T> next;
public Node(T data){
this.data = data;
next = null;
}
}
在使用該課程的地方,你可以這樣做:
new Node<Item> // ...
你的代碼看起來像這樣:
Node<Item> x = head, y = b.head;
而且你不會那樣得到警告。
然而,我的蜘蛛意識告訴我那里存在一些建築問題。 由於您沒有向我們展示您的所有代碼,因此我們無法為您提供任何幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.