- PVSM.RU - https://www.pvsm.ru -
Groovy можно использовать по разному — для скриптов, для Grails, для быстрого написания прототипов, для DSL и т.д.
Меня же Groovy всегда привлекал как улучшенная Java. В самом деле — почти любой Java код будет валидным кодом Groovy — т.е. если не помнишь как что то делать в Groovy-way, можно всегда писать так, как принято в Java, а если помнишь — вот тебе и Closures, и удобные списки, и много других замечательных вещей [1].
Единственное, что мешало использовать Groovy для разработки production кода — отсутствие ошибок компиляции в большом числе случаев. Например если вызываешь несуществующий метод, обращаешься к несуществующей переменной и т.д.
Для многих Groovy фреймворков и библиотек это реально нужно (см. например работу с XML [2] в Groovy), но если я пишу обычный код, мне это серьезно мешает.
Так вот, наконец в Groovy 2.0 появилась возможность сказать — проверяй в этом классе типы, существование методов и переменных!
Возьмем, например, такой класс:

Он комплируется без проблем.
Но если мы добавим
@TypeChecked (эта аннотация может быть на классе или методе), то получим ошибки:

Также проверка автоматически включается, если мы включаем для класса статическую компиляцию аннотацией @CompileStatic:

Теперь можно будет писать на Groovy всё то, что писалось на Java и не бояться проблем, пропущенных компилятором.
Полный список проверок можно найти здесь [3].
Было бы еще классно, если бы сделали проверку типов по умолчанию, а динамическую типизацию по аннотации…
Автор: javax
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/java/9082
Ссылки в тексте:
[1] много других замечательных вещей: http://joe.kueser.com/2007/10/what-makes-groovy-sogroovy/
[2] работу с XML: http://groovy.codehaus.org/Reading+XML+using+Groovy's+XmlSlurper
[3] здесь: http://docs.codehaus.org/display/GroovyJSR/GEP+8+-+Static+type+checking
Нажмите здесь для печати.