それは主に私はこれを行うことができます、整数を強化いくつかのメソッドを持つクラスをIを開発しました:GroovyのはExpandoメタクラス
def total = 100.dollars + 50.euros
今、私はこのような何かやっInteger.metaClassを拡張する必要があります。
をInteger.metaClass.getDollars = {->
Money.Dollar(delegate)
}
Moneyのクラス宣言の前にファイルの一番下に置いてみましたが、コンパイラは名前付きクラスがすでに存在すると言いますが、なぜ起こるのか分かります(groovyはファイルの名前このコードを実行するためには空の静的voidをメインとします)。
私はまた、このようなクラス内の静的なブロックを使用してみました:
static {
Integer.metaClass.getDollars = {->
Money.Dollar(delegate)
}
}
このどちらの作品を。
3番目の解決策は、ファイル名(MoneyClass.groovyなど)を変更し、クラス名(クラスMoney)を保持することですが、それはちょっと変わったようです。
他に何かできますか?ありがとう。
Dang!私はGroovyを学ぶ必要があります。 – bgw