[英]Confusion with generics, interfaces, and extending
因此,我正在嘗試為通用鏈表和跳過表編寫程序。 我還想在使用接口和超類時使用它,以備將來使用,但是我似乎無法弄清楚如何使所有類與所有泛型類型一起使用。
這是我現在擁有的基本思想:
我的列表ADT和節點類,所有內容都將源於此:
public class Node<K extends Comparable<K>> {
K key;
Object data;
...
}
public interface List<T> {
public void insert(T value);
public void delete(T value);
}
並以鏈接列表為例:
public class LList<T extends Comparable<T>> implements List<LLNode<T>>
public class LLNode<K extends Comparable<K>> extends Node<K>
我這樣做對嗎?
編輯:更具體地說,當我嘗試制作此類的非常基本的實例時,我遇到了問題,例如...
List<String> linkedList = new LList<String>();
List[] lists = {linkedList};
sets[0].insert("cookie");
這給了我一個編譯器錯誤:java.lang.String無法轉換為project.LLNode
我想了三個選擇:
首先 ,將與List<String>
:
public class LList<T extends Comparable<T>> implements List<T>
{
@Override
public void insert(T value)
...
}
這樣就不再需要Node
。
或者 ,您的第二個選擇:您可以保持實現方式並使用List<LLNode<String>>
或者 , 最后,如果您同時需要使用Node
和這個List<String>
(我想這是您的需要)(從疑問中尚不清楚),並且僅在內部使用Node
,請使用第一個選項,如果不可能的話,請更清楚地了解您的需求,我會盡力幫助您。
問候。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.