我有一个配置为使用Java 8的maven项目,一切正常,eclipse编译代码如下:
Map<String,String> map = new HashMap<>();
当我在错误/警告选项卡上设置它时,它甚至会抱怨旧式代码(“类型参数的冗余规范”)。问题是,我无法弄清楚如何使它在默认情况下使用这种语法在自动完成 - 我很确定我看到它工作较早,但现在每当我ctrl-space插入构造函数时,它坚持添加参数,我不喜欢。
任何人都可以提示要检查哪些设置以使内容辅助插入&lt;&gt;而不是&lt;字符串,字符串&gt;?或许这与我使用Java 8而不是Java 7,或者我正在使用maven这一事实有关?
答案 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)