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