I can recommend Java coding Emacs users to try out meghanada by @mopemope No project setup required as it uses Maven directly.
Here you see some of Meghanada's features, including code completion,
inline doc (see below in the mini buffer), code navigation, automatic
imports, intelligent creation of local variables to hold return values
(e.g. list.getSize()
becomes int size = list.getSize()
) and on the
fly java linting (errors and warnings).
To get everything up and running, only two lines of conf is needed 👍 My complete Meghanada configuration can be viewed on Github.