eclipse没有插入"钻石" java 8项目中的operator

时间:2014-07-19 14:45:05

标签: java eclipse maven

我有一个配置为使用Java 8的maven项目,一切正常,eclipse编译代码如下:

Map<String,String> map = new HashMap<>();

当我在错误/警告选项卡上设置它时,它甚至会抱怨旧式代码(“类型参数的冗余规范”)。问题是,我无法弄清楚如何使它在默认情况下使用这种语法在自动完成 - 我很确定我看到它工作较早,但现在每当我ctrl-space插入构造函数时,它坚持添加参数,我不喜欢。

任何人都可以提示要检查哪些设置以使内容辅助插入&lt;&gt;而不是&lt;字符串,字符串&gt;?或许这与我使用Java 8而不是Java 7,或者我正在使用maven这一事实有关?

6 个答案:

答案 0 :(得分:25)

我几分钟前就遇到过这个问题,并在键入SO问题的一半时解决了这个问题。

在我刚刚摆弄高级内容辅助设置之后,Eclipse的自动完成显然优先考虑了旧式通用语法。尝试将Java > Editor > Content Assist > Advanced重置为默认值;这就是为我修复它并返回自动完成以默认插入菱形语法。

答案 1 :(得分:5)

我遇到了同样的问题,但是将所有内容设置为默认值的解决方案并不适用于我。对我有用的是Java > Editor > Content Assist > Advanced并在上方窗口中取消选中 JPA提案

答案 2 :(得分:2)

我尝试了这里提到的另外两个解决方案,但它们都没有为我工作。对我有用的是Java > Editor > Content Assist > Advanced并在上方框中检查Java Non-Type Proposals

在另一个安装中,还必须在下部区域进行检查,但它在两个eclipse安装中都有效。

答案 3 :(得分:1)

对我有用的是启用/检查Java > Editor > Content Assist > Advanced > Java提案。 (设置页面的上部)

答案 4 :(得分:0)

我在使用maven编译时发现了这个错误。为了解决这个问题,我必须将我的JAVA_HOME环境变量修复到正确的JDK。

答案 5 :(得分:0)

好吧,似乎不同的建议位于不同的建议列表中,我认为菱形运算符构造函数位于“ Java非类型建议”中,而带参数的构造函数位于“ Java建议”中。当两个列表都包含在默认建议列表中时,后一个选项优先(尽管您仍然可以按箭头选择“钻石”列表)。对我来说,如何对其进行排序的唯一方法是禁用列表中的其他选项:enter image description here