8

正如 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>()

问题:有没有办法让子类作为泛型类型的建议?

4

3 回答 3

9

我建议简单地先写表达式然后点击Ctrl+2, L. 然后,您可以命名变量,后跟Enter, Down, Enter. 完毕。

于 2012-07-03T15:12:27.367 回答
2

根据您编写此类代码的个人风格,这是受@Ben Schulz 答案启发的替代方法。如果你通常先写作业,比如

al = new ArrayList<String>();

然后您可以使用Ctrl+1启动“创建局部变量”快速修复。点击Tab现在将直接打开您选择类型的类型选择List

于 2012-07-03T17:59:15.593 回答
2

JDK 1.7 不需要在等号右边指定泛型类型。首选项 -> Java -> 编译器到 1.6

于 2013-08-28T07:58:23.947 回答