Eclipse Auto Complete: Java 1.7 Generics Diamond

For anyone still experiencing this with the latest Eclipse version:

Open "Window" > "Preferences" > "Java" > "Editor" > "Content Assist" > "Advanced". In the opened dialog under "Default Proposal Kinds":

  • Check "Java Proposals"
  • Uncheck "Java Proposals (Task-Focused)"

Proposal kind selection


Set is an interface rather than an implementation so the IDE can only assume that you want an anonymous inner type which always requires the generic type parameter. You could do

Set<String> mySet = new HashSet + CTRL + SPACE

You have most likely installed the Code Recommenders plug-in. Unfortunately this plug-in is affected by bug #435597 which breaks this functionality.

This bug appears to occur only if you have certain proposal kinds enabled in the “'default' content assist list” (Eclipse Preferences > Java > Editor > Content Assist > Advanced). For example I could get back the correct behavior by disabling the following proposal kinds:

  • Basic Proposals
  • JPA Proposals
  • Template Proposals

(the last one is likely the most annoying if you are using code templates…)

When you are cycling with ctrl+space, you are actually reaching the “Java Proposals” (instead of the “Intelligent Java Proposals (Code Recommenders)”), which is not affected by this bug.

This bug is scheduled for release 2.2.0 in June 2015. The best you can do for the moment is:

  • Play with the proposals to check which ones trigger the bug for you (maybe take a screenshot of your current setup before doing that);
  • Vote for bug #435597 and bug #435660 to get them fixed;
  • Propose patches for fixing those bugs :-)