Eclipse Auto Complete:Java 1.7 Generics Diamond

Chr*_*urk 12 java eclipse generics autocomplete

我刚刚升级到Luna(来自Kepler),我注意到一些小问题(但很烦人):
自动完成无法为变量初始化中已经指定的泛型生成钻石"<>".例如,当我键入:

Set<String> mySet = new HashSet 
Run Code Online (Sandbox Code Playgroud)

我希望,它会自动完成

Set<String> mySet = new HashSet<>();
Run Code Online (Sandbox Code Playgroud)

而不是

Set<String> mySet = new HashSet<String>();
Run Code Online (Sandbox Code Playgroud)

我使用的是JDK 1.7,合规级别也设置为1.7.

当我在自动完成期间多次击中STRG + Space直到它再次达到java-autocompletion然后按Enter键时,它会传递预期的钻石,这也很奇怪.

这对我来说非常像一个错误.
这个错误是"已知",是否有针对此问题的解决方法?找不到与此主题相关的任何内容.

Did*_*r L 13

您很可能已安装Code Recommenders插件.不幸的是,这个插件受到错误#435597的影响,它破坏了这个功能.

只有在" '默认'内容辅助列表 "(Eclipse首选项> Java>编辑器>内容辅助>高级)中启用了某些提议类型时,才会出现此错误.例如,我可以通过禁用以下提议类型来恢复正确的行为:

  • 基本提案
  • JPA提案
  • 模板建议

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

当您使用ctrl+ 循环时space,您实际上正在使用" Java Proposals "(而不是" Intelligent Java Proposals(Code Recommenders) "),它不受此错误的影响.

此错误计划于2015年6月发布2.2.0版.您目前最好的办法是:

  • 使用提案来检查哪些提示会为您触发错误(可能会在执行此操作之前截取当前设置的屏幕截图);
  • 投票错误#435597错误#435660以修复它们;
  • 提出修复这些错误的补丁 :-)


Mar*_*234 12

对于使用最新 Eclipse 版本仍然遇到此问题的任何人:

打开“窗口”>“首选项”>“Java”>“编辑器”>“内容辅助”>“高级”。在“默认提案种类”下打开的对话框中:

  • 检查“Java 提案”
  • 取消选中“Java 提案(以任务为中心)”

提案种类选择