我想做的是:
List<String> list = new
然后点击Ctrl + Space并获取ArrayList<String>()
(以及其他内容)以显示在提案类型中。
我以为我之前有这个工作,但我最近不得不重新安装,但找不到它的设置。
这是Eclipse Java EE helios,但如果需要,我可以升级到indigo。
我试着寻找here寻求帮助,但没找到我要找的信息。我已经尝试检查“Default Proposal Kinds”(Java - &gt; Editor - &gt; Content Assist - &gt; Advanced)下的所有框,但无济于事。
答案 0 :(得分:6)
Eclipse不知道哪个类实现了接口,并且不会为它拥有的所有接口加载它们。但是, Eclipse可以学习您使用的内容,并在下次使用时向您展示,也许这就是您发生在您身上的时间,您已经教过Eclipse实施的课程了!
这是Eclipse在学习之前/以及在学习了什么类实现Map
之后的一个例子。
正如你在图片中看到的那样,第一次,Eclipse除了HashMap
以外我不知道任何其他的东西。
之后,我使用TreeMap
和LinkedHashMap
手动输入(仅限第一次),Eclipse现在缓存它们。
正如大家建议的那样,你可以把重点放在Map
上,然后点击Ctrl+T
它将为所有类提供实现。第一次会很有用。
2014年更新!
正如@ K.Carpenter注意到的,在较新的Eclipse版本中禁用了此功能。重新启用它。转到Window-&gt; Preferences-&gt; Java-&gt; Editor-&gt; Content Assist-&gt; Advanced。
在默认提案种类下,您需要检查 Java类型提案
答案 1 :(得分:2)
例如,我通常会将代码声明如下:
import com.google.common.collect.Lists;
...
List myList<String> = Lists.newArrayList();
答案 2 :(得分:1)
我希望看到Eclipse这样做,但我想内容辅助在没有开始字符的情况下从未起作用(除非有一些我们不知道的隐藏功能)。
嗯,考虑到这一点,我从'使用最常用的实现锁定的方法是查看All Known Implementing Classes
部分中的javadoc,以查看其他内容我可以使用的可能性。
我知道它不是一个Eclipse内解决方案,但它可以帮助一些陷入同样问题的用户。
答案 3 :(得分:1)
不假装是您问题的答案,但我使用快速修复( Ctrl + 1 / Ctrl + 2 < / kbd>)定义一个新的局部变量或字段。
首先,我输入(可能使用 Ctrl + Space 进行内容辅助):
new ArrayList<String>();
然后我按 Ctrl + 2 和 L 通过生成实例化类型的变量定义将语句分配给新的局部变量:
ArrayList<String> arrayList = new ArrayList<String>();
最后,我使用tab(也可以使用Enter)在插入的arrayList
和ArrayList
之间导航,以从下拉列表中指定确切的变量名称及其类型:
List<String> list = new ArrayList<String>();
第三次按下选项卡将光标移动到语句的末尾。
希望,你会发现这种方式也很有用。
答案 4 :(得分:1)
这是一种可以向eclipse添加新模板的方法,然后您只需键入arraylist,按ctrl + space即可为您创建完整的声明。您所要做的就是添加类型和名称。
Save this file, then import it to eclipse
以下是导入/导出模板的方法
转到窗口&gt;偏好&gt; Java&gt;编辑&gt;模板
选择所需的模板。 NB!复选框不表示 选择了什么;它们用于启用/禁用模板。一个 如果选中表中的整行,则选择模板,因此 使用Ctrl +左键单击或特定于您的操作系统的方法进行多选 模板。
单击“导入...”,然后选择您收到的XML文件。或者出口......和 提供文件名。
键入arrayList
按ctrl + space并选择arraylist
填写类型和名称
答案 5 :(得分:0)
我能够这样做,但它没有出现在类型提案中。尝试输入:
List<String> list = new Ar
按Ctrl-Space并接受第一个建议。它完成了ArrayList<String>()
对我来说(这是使用SpringSource Tool Suite Eclipse发行版)。