色々、気付いたことを載せて行きます。新しいものが上。
まとまったら別のページに移動させることもあるかもしれません。
Groovy の switch は、スゲー便利。
switch (x) {
case 0:
println "x = 0"
break
case "abc":
println "x = 'abc'"
break
case [7, 'Z']:
println "x is 7 or 'Z'"
break
case ~/\d+/:
println "x is Digit String"
break
case String:
println "x is String"
break
case 10..20:
println "x is 10 between 20"
break
}
やるな。
これを使うと、既存のインスタンスに機能を拡張できる。
いわゆる Mix-in というやつか。
class NumberCategory {
static Distance getMeters(Number self) {
new Distance(number: self)
}
}
use(NumberCategory) {
println 300.meters
}
おぉ、なんかすげぇ。
Groovy では、Annotation 一つで簡単に Delegate を定義できる。
def jsonUser
String getScreenName() {
jsonUser.getScreenName()
}
String getName() {
jsonUser.getName()
}
...
今までこう書いていたのを、Groovy では以下で良い。
@Delegate User jsonUser
うーん、素晴らしい。
以下のように記述すると、それはListクラスのインスタンスになる。
columnNames = [ "COUNTRY", "WIN", "LOST", "EVEN" ]
配列にしたかったら、以下のようにする。
String[] columnNames = [ "COUNTRY", "WIN", "LOST", "EVEN" ]
tableModel.addRow("a", "b")
これで良い。
Swing の中で使える Widget 一覧 http://groovy.codehaus.org/Categorical+Widget+List