【发布时间】:2012-07-04 01:05:11
【问题描述】:
“通过接口引用对象”是一个很好的实践,如 Effective Java 中所述。 所以例如我更喜欢
List<String> al = new ArrayList<String>();
结束
ArrayList<String> al = new ArrayList<String>();
在我的代码中。一件烦人的事情是,如果我输入 ArrayList<String> al = new 然后在 Eclipse 中按 Ctrl+Space 我会得到 ArrayList<String>() 作为提议。但是如果我输入 List al = new 然后按 Ctrl+Space 我将只得到定义匿名内部类的建议,而不是诸如 new ArrayList<String>() 之类的建议,99% 的情况是什么,或者例如 new Vector<String>()。
问题:有没有办法让子类作为泛型类型的提案?
【问题讨论】:
-
建议“使用番石榴和
Lists.newArrayList()会不会太厚脸皮? -
当然很好,但实际上我想让所有子类都作为提案,而不仅仅是列表。
-
@JonSkeet 你会添加一个新的依赖项(我的意思是你无论如何都想添加它,但假设不是)只是为了将
new ArrayList<>()更改为Lists.newArrayList()? -
可以肯定的是,我不确定我是否想在没有 Guava 作为依赖项的情况下启动 any Java 项目...
标签: java eclipse generics autocomplete effective-java