The mind-reader IDE, as we used to call it. It's sometimes scary when you create a new variable in a class and it gives you the perfect suggestion (based on what you did elsewhere in the code).
In Java you indeed do need lots of stuff like getters and setters.
Jetbrains does something similar with their Ruby ide, but it feels more advanced in IntelliJ. Certainly the static analysis can gather more information.
If I extract a variable for service.getUserRecommendations(), I believe the recommendation list would look like "userRecommendations", "recommendations", etc.
Eclipse does a lot of "mind-reading", too.