Groovy is a dynamic language, means every variable name is (unless it is null) bound only to an object.
Names are bound to objects at execution time by means of assignment statements.
Java, is a statically typed language, means every variable name is bound both:
- To a type (at compile time, by means of a data declaration)
- To an object (optional, if it is not bound to an object, than the name is said to be null)
When using Java you can find syntax errors at compile time.
Related to your question:
Does Groovy(or Groovy IDEs, preferably when used along with Grails)
have those features(implemented as thoroughly as Java/Java IDEs)?
The answer is no.
In my opinion, Groovy using Grails framework is a great and easy to use.
The using of Groovy and Grails make a strong framework enables fast development and very friendly environment to the developer. I am sure there are some people who can argue with the last sentence I wrote, but this is my opinion as a developer who works with that framework and using groovy for a year.
If you wish to have a Strong typing language and the ability to check your code at compile time than Java is your answer (especially using Java 8 with its great new features such as Lambda and Java Stream Api).
Try to think what are you main features you would like to have in your IDE before you choose one. It can make your life much more enjoyable if you have a great echo system to work with.