web-dev-qa-db-ja.com

オブジェクトの配列の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構文は何ですか?

15
Captain Franz
@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の質問にもお答えください。

19
dmahapatro