eclipse没有在java 8项目中插入"diamond"运算符

Lil*_*ili 21 java eclipse maven

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

Map<String,String> map = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)

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

任何人都可以提示要检查哪些设置以使内容辅助插入<>而不是<String,String>?或者它可能与我使用Java 8而不是Java 7或我正在使用maven这一事实有关?

Mar*_*lst 27

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

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

  • 惊人.这也解决了我的问题,我有一个几乎全新的安装.我所做的就是导入一个maven项目并设置一些评论模板.似乎默认值不是默认值. (3认同)
  • 谢谢你。我对实际的提案类型很好奇,结果是我的偏好中关闭了“Java 提案”。 (2认同)

Bev*_*vor 7

我有同样的问题但是将所有内容设置为默认的解决方案对我来说不起作用.对我Java > Editor > Content Assist > Advanced有用的是在上方窗口中取消选中JPA Proposals.


gro*_*ker 5

我尝试了这里提到的其他两个解决方案,但是没有一个对我有用。对我有用的是Java > Editor > Content Assist > Advanced并检查Java Non-Type Proposals上方的框。

在其他安装中,也必须在下部进行检查,但是在两个Eclipse安装中都可以使用。