Groovy инициализация массива объектов

Я ищу самый компактный синтаксис для инициализации массива объектов в Groovy. Дано:

class Program {
    String id = ""
    String title = ""
    String genre = ""   
}

в настоящее время я делаю это:

Program[] programs = [
    new Program([id:"prog1", title:"CSI", genre:"Drama"]),
    new Program([id:"prog2", title:"NCIS", genre:"Drama"]),
    new Program([id:"prog3", title:"Criminal Minds", genre:"Crime drama"]), 
] as Program[]

Я, кажется, помню, что в Java есть более компактный синтаксис, возможно, не требующий использования нового ключевого слова. Какой самый компактный синтаксис Groovy для этого?

1 ответов


@groovy.transform.Canonical
class Program {
    String id = ""
    String title = ""
    String genre = ""   
}

Program[] programs = [
    ["prog1", "CSI", "Drama"],
    ["prog2", "NCIS", "Drama"],
    ["prog3", "Criminal Minds", "Crime drama"]
]

println programs

Пожалуйста, также ответьте на вопрос @Igor.