【发布时间】:2012-11-29 15:00:38
【问题描述】:
我必须承认,我对 java 泛型不是很熟练。但这就是问题所在。 我需要继承 LinkedList 以添加一些(不是全部)典型的 Map 方法。假设我这样做:
public class TalendList<T extends Serializable> extends ArrayList<T>{
private Map<T, T> map;
public TalendList(){
super();
map = new ConcurrentHashMap<T, T>();
}
这是正确的方法吗?为什么我不能在调用者代码中这样做:
List<String> ggg = new TalendList<String>();
但只有:
TalendList<String> ggg = new TalendList<String>();
?
【问题讨论】:
-
List<String> ggg = new TalendList<String>()应该可以正常工作。您能否发布一个不起作用的完整示例? -
是的,这应该可以正常工作。
-
像这样扩展 ArrayList 可能不是一个好主意。这里有一个更优雅的解决方案:code.google.com/p/guava-libraries/wiki/…
-
我改用了 guava ForwardingList 设计,非常酷 :) tnx 为您的贡献!
标签: java generics collections map linked-list