繁体   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