我刚升级到Luna(来自Kepler),我注意到一些小问题(但很烦人):
自动完成缺乏生成钻石的可能性"<>"对于已经指定的变量初始化泛型。例如,当我输入:
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键时,它会发送预期的钻石,这也很奇怪。
这对我来说非常像一个小虫 是这个错误&#34;已知&#34;这个问题是否有解决方法?找不到与此主题相关的任何内容。
答案 0 :(得分:13)
您很可能已安装代码推荐器插件。不幸的是,这个插件会受到bug #435597的影响,从而破坏了这一功能。
只有在“'默认'内容辅助列表”中启用了某些提案种类时,才会出现此错误( Eclipse首选项&gt; Java&gt; ;编辑器&gt;内容辅助&gt;高级)。例如,我可以通过禁用以下提议类型来恢复正确的行为:
(如果使用代码模板,最后一个可能是最烦人的......)
当您使用 ctrl + space 骑行时,您实际上已经到达“ Java Proposals ”(而不是“智能Java提案(代码推荐器)“),不受此错误的影响。
此错误定于2015年6月release 2.2.0。目前最好的是:
答案 1 :(得分:2)
Set
是一个接口而不是实现,因此IDE只能假设您需要一个始终需要泛型类型参数的匿名内部类型。你可以做到
Set<String> mySet = new HashSet + CTRL + SPACE
答案 2 :(得分:1)
对于仍然使用最新的Eclipse版本遇到此问题的人:
打开“窗口”>“首选项”>“ Java”>“编辑器”>“内容辅助”>“高级”。在打开的对话框的“默认提案类型”下:
答案 3 :(得分:-4)
这个钻石功能是在jdk 1.8中引入的,它不适用于jdk 1.7 所以它是oracle引入的新功能。
因此,这只取决于您计算机上的jdk版本而不是ide版本..