当前位置: 首页 > 面试题库 >

Eclipse自动完成:Java 1.7泛型钻石

曾阳飙
2023-03-14
问题内容

我刚从Kepler升级到Luna,但发现了一些小(但很烦人)的问题:
自动完成功能无法为变量初始化中已指定的泛型生成菱形“ <>”。例如,当我键入:

Set<String> mySet = new HashSet

我希望它会自动完成

Set<String> mySet = new HashSet<>();

而不是

Set<String> mySet = new HashSet<String>();

我正在使用JDK 1.7,并且合规性级别也设置为1.7。

当我在自动完成过程中多次按下STRG + Space直到再次达到java-
autocompletion并再次按下Enter时,它会提供预期的钻石,这也非常奇怪。

在我看来,这非常像个虫子。
此错误是“已知的”吗,此问题有任何解决方法吗?找不到与此主题相关的任何内容。


问题答案:

您最有可能安装了 Code Recommenders
插件。不幸的是,此插件受错误#435597的影响,该错误破坏了此功能。

仅当您在“ ‘默认’内容辅助列表 ”( Eclipse首选项 > Java>编辑器>内容辅助>高级)中启用了某些 提议类型
时,才会出现此错误。例如,我可以通过禁用以下投标类型来恢复正确的行为:

  • 基本建议
  • JPA提案
  • 范本提案

(如果您使用的是代码模板,则最后一个可能最烦人……)

当您使用ctrl+ 循环时space,实际上是到达了“ Java提案 ”(而不是“ Intelligent Java
Proposals(代码推荐
”),它不受此错误的影响。

该错误计划于2015年6月发布2.2.0版。
目前,您可以做的最好的事情 是:

  • 处理建议, 以检查哪些触发了您的错误(在执行此操作之前,请截取当前设置的屏幕截图);
  • 投票 为错误#435597,并错误#435660,让他们固定的;
  • 提出修补程序 以修复这些错误:-)


 类似资料:
  • 问题内容: eclipse的自动完成功能现在无法使用,我搜索了几个小时,但找不到解决方案。我已经使用很长时间了,所以即使我已经安装了秋千,打开它之后的第一件事就是要安装SWT和Windows Builder。我的意思是,这可能是由于swt和swing引起的一些冲突(我读到一些有关冲突的信息,但如果可能的话,我不会)。 奇怪的是,当我按ctrl + space时它什么都没有显示,但是当我进入“编辑”

  • 问题内容: 我希望Eclipse在编写一些变量/类名或关键字时(例如在Flash Develop或Visual Studio中)自动向我建议所有可能的选项。 可能吗? 如果没有,我可以通过哪个Java IDE获得它? 我专门询问一种在键入时 自动 获得与+ 相同的东西的方法。 问题答案: 您还可以将自动完成设置为在键入时自动打开。 转到> > > 并写在外地。 有关更多详细信息,请参见此问题。

  • 问题内容: 我使用Eclipse Oxygen.2 Release(4.7.2) 我尝试了一些lambda表达式,并遇到以下问题: 我编写不带类型的lambda参数,Eclipse自动完成效果很好: 如果我编写具有类型的lambda参数,则不会自动完成: 但是我可以自己编写,并且一切正常: 这是Eclipse中的错误吗?有人可以解释这种行为吗? 问题答案: Yes, this is a known

  • Spring4包含了对泛型类型解析的主要增强,但当包含bean类的type参数被参数化时,我无法自动生成泛型类型。 我需要跟踪提交给外部服务的作业的状态,并且我想在每个作业启动时为其创建一个条目,并在收到回发时清除或更新它。我通常会尝试将持久性策略与服务接口分开,因此我有一个接口,一个Spring数据Mongo类。由于作业可能会在外部服务有机会为其分配ID(例如HTTP 502)之前失败,因此我需

  • 问题内容: 我是Eclipse的新手,我想知道是否有可能在我键入(Visual Studio样式)时自动打开完成窗口,而不是单击+ 吗? 问题答案: 有可能的。你可以简单地写:在大田,> > > 。 在编写Java代码时,在点之后,窗口会在可配置的时间(默认值为200毫秒)后自动打开。 通常,您可以执行的操作是添加一个自动激活触发器,例如,这样,当您要弹出窗口时,您可以键入并删除该字符(尽管我认为

  • 我试图在Eclipse中以编程方式使用JShell编写一段代码,但是Eclipse过滤了类在自动完成中。我只看到从对象类继承的成员。我想这是因为该类位于包中,但该包似乎是导出的,应该被视为公共的。