整数を拡張するいくつかのメソッドを持つクラスを開発しました。主にこれを行うことができます。
def total = 100.dollars + 50.euros
ここで、Integer.metaClass を次のように拡張する必要があります。
Integer.metaClass.getDollars = {->
Money.Dollar(delegate)
}
Money クラス宣言の前に、ファイルの一番下にそれを入れようとしましたが、コンパイラは Money という名前のクラスが既に存在すると言いました。このコードを実行するには void main を使用します)。
また、次のようにクラス内で静的ブロックを使用してみました。
static {
Integer.metaClass.getDollars = {->
Money.Dollar(delegate)
}
}
これはどちらも機能しません。
3 番目の解決策は、ファイル名 (MoneyClass.groovy など) を変更し、クラス名 (class Money) を保持することですが、これは少し奇妙に思えます。
他にできることはありますか?ありがとう。