- PVSM.RU - https://www.pvsm.ru -

Groovy как лучшая Java

Groovy можно использовать по разному — для скриптов, для Grails, для быстрого написания прототипов, для DSL и т.д.

Меня же Groovy всегда привлекал как улучшенная Java. В самом деле — почти любой Java код будет валидным кодом Groovy — т.е. если не помнишь как что то делать в Groovy-way, можно всегда писать так, как принято в Java, а если помнишь — вот тебе и Closures, и удобные списки, и много других замечательных вещей [1].

Единственное, что мешало использовать Groovy для разработки production кода — отсутствие ошибок компиляции в большом числе случаев. Например если вызываешь несуществующий метод, обращаешься к несуществующей переменной и т.д.

Для многих Groovy фреймворков и библиотек это реально нужно (см. например работу с XML [2] в Groovy), но если я пишу обычный код, мне это серьезно мешает.

Так вот, наконец в Groovy 2.0 появилась возможность сказать — проверяй в этом классе типы, существование методов и переменных!


Возьмем, например, такой класс:

image

Он комплируется без проблем.

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

image

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

image

Теперь можно будет писать на 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