在eclipse中的内容辅助中实现了类/子类

时间:2011-10-18 15:45:21

标签: java eclipse subclass eclipse-jdt content-assist

我想做的是:

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)下的所有框,但无济于事。

6 个答案:

答案 0 :(得分:6)

Eclipse不知道哪个类实现了接口,并且不会为它拥有的所有接口加载它们。但是, Eclipse可以学习您使用的内容,并在下次使用时向您展示,也许这就是您发生在您身上的时间,您已经教过Eclipse实施的课程了!

这是Eclipse在学习之前/以及在学习了什么类实现Map之后的一个例子。

enter image description here

正如你在图片中看到的那样,第一次,Eclipse除了HashMap以外我不知道任何其他的东西。

之后,我使用TreeMapLinkedHashMap手动输入(仅限第一次),Eclipse现在缓存它们。

正如大家建议的那样,你可以把重点放在Map上,然后点击Ctrl+T它将为所有类提供实现。第一次会很有用。

2014年更新!

正如@ K.Carpenter注意到的,在较新的Eclipse版本中禁用了此功能。重新启用它。转到Window-&gt; Preferences-&gt; Java-&gt; Editor-&gt; Content Assist-&gt; Advanced。

默认提案种类下,您需要检查 Java类型提案

答案 1 :(得分:2)

像这样的代码是我对Java Generics的厌恶之一。我使用Google的Guava库来使我的泛型代码更具可读性,并且作为副作用在Eclipse中不需要这个特定功能(尽管我同意它应该被实现)。 Guava对Sets也有类似的支持。

例如,我通常会将代码声明如下:

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)在插入的arrayListArrayList之间导航,以从下拉列表中指定确切的变量名称及其类型:

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

Type arraylist

按ctrl + space并选择arraylist

Press Ctrl + Space

填写类型和名称 Fill in the type and name

答案 5 :(得分:0)

我能够这样做,但它没有出现在类型提案中。尝试输入:

List<String> list = new Ar

按Ctrl-Space并接受第一个建议。它完成了ArrayList<String>()对我来说(这是使用SpringSource Tool Suite Eclipse发行版)。