[英]Using LinkedList in java, when needing both List and DeQueue methods
如果我要實例化LinkedList並要求訪問List和Dequeue接口中的方法,並且不想鍵入具體的實現,並且不想在接口之間進行強制轉換,是否有辦法?
即:
LinkedList ll = new LinkedList(); // don't want to do this...
List ll = new LinkedList();
ll.peekFirst(); // can't access peekFirst method
((DeQueue) ll).peekFirst(); // Kinda ugly
public interface Foo<T> extends List<T>, Deque<T>{}
public class Bar<T> extends LinkedList<T> implements Foo<T>{}
Foo ll = new Bar();
我附近沒有日食,不過應該編譯。
我認為在Java中您別無選擇,只能使用具體類型,或者存儲對同一對象的兩個引用,一個引用鍵入List,另一個引用作為出隊。
List<T> list;
Dequeue<T> queue;
/** Construct a new instance of SomeClass */
private SomeClass() {
LinkedList<T> tmp=new LinkedList<T>();
list=tmp;
queue=tmp;
}
不過,並不是說我特別喜歡那樣。
如果您將ll聲明為java.util.List,我看不到該怎么做。 應該能夠創建自己的類,但是您將被綁定到該類而不是庫存類/接口...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.