簡體   English   中英

同時需要List和DeQueue方法時,在Java中使用LinkedList

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM