java - Eclipse 自动完成 : Java 1. 7 Generics Diamond

标签 java eclipse generics autocomplete

我刚刚升级到 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 插件。不幸的是,此插件受 bug #435597 影响。这打破了这个功能。

只有当您在“'默认'内容辅助列表”(Eclipse Preferences > Java > Editor > 内容辅助 > 高级)。例如,我可以通过禁用以下提案类型来恢复正确的行为:

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

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

当您使用 ctrl+space 循环时,您实际上到达了“Java Proposals”(而不是“ Intelligent Java Proposals (Code Recommenders)”),不受此错误影响。

此错误已安排在 release 2.2.0 2015 年 6 月。你目前能做的最好的事情是:

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

关于java - Eclipse 自动完成 : Java 1. 7 Generics Diamond,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24984135/

相关文章:

java - 使用现有 Java 文件在 Eclipse 上创建新项目

java - 在 glassfish 服务器上运行应用程序时 Eclipse 未打开浏览器

c - 指向 void* 的指针,以及通用的冒泡排序

generics - 有什么办法可以在编译时安全地知道所有可能的类型?

c# - IEnumerable 到 IReadOnlyCollection

Java : threads are limited to 25% of the CPU

java - SSL 握手异常

java - 如何以编程方式获取 JBoss 中所有注册 DS 名称(对象)的列表?

eclipse - 在 Eclipse 中为 Java Card 3 平台编程

java - Spark 列出所有缓存的 RDD 名称并取消持久化