Перейти к основному содержимому

5.12. Прочие особенности

Разработчику Архитектору

Прочие особенности

Динамическая типизация:

Groovy позволяет работать с переменными без явного указания типа (def), что делает его гибким для скриптов.

Метапрограммирование:

Groovy поддерживает изменение поведения классов и объектов во время выполнения.

String.metaClass.shout = { -> delegate.toUpperCase() }
println "hello".shout() // Вывод: HELLO

AST Transformations:

Плагины компиляции позволяют модифицировать абстрактное синтаксическое дерево (AST) на этапе компиляции. Например, аннотации @ToString, @EqualsAndHashCode.

Поддержка DSL:

Groovy подходит для создания доменно-специфических языков (DSL), например, Gradle использует Groovy для своих скриптов сборки.

Работа с XML и JSON:

Groovy предоставляет удобные средства для работы с XML и JSON.

def xml = new XmlBuilder()
xml.person {
name "Alice"
age 30
}

def jsonSlurper = new JsonSlurper()
def person = jsonSlurper.parseText('{"name":"Alice","age":30}')

Гибкость синтаксиса:

  • Не обязательно использовать точку с запятой
  • Можно опускать return в конце метода
  • Методы можно вызывать без скобок
def hello(name) {
"Hello, $name"
}

println hello "Groovy" // Вызов без скобок