2016-04-19 16 views
0

Groovyの特性を使ってライブラリクラスにメソッドを追加する方法があるかどうかを知りたいです。特長を備えたGroovy拡張メソッド?

here @Mixinがこれに使用されているか、またはランタイムミックスインアプローチをメタクラスで使用できます。 @Mixinは今や形質を受けてdeprecatedになっているので、形質を使用して同じ動作を達成する機会があるか、ランタイムmixinが唯一の選択肢ですか?

ありがとう

+1

Groovyのドキュメントでは、使用可能なオプションについて詳しく説明しています。http://groovy-lang.org/metaprogramming.html –

答えて

0

Groovyはまた、実行時に動的特性を実装しサポートしています。 は、特性を使って既存のオブジェクトを「飾る」ことができます。

オブジェクトを装飾することはできますが、すべてのインスタンスに利用できるメソッドがあるようにクラスを装飾することはできません。あなたに役立つかもしれないか、または詳細hereを見つけることが簡単な例の下を参照してください。

trait Extra { 
    String extra() { "I'm an extra method" }    
} 

class Something {          
    String doSomething() { 'Something' }     
} 

def s = new Something() as Extra       

assert s.extra() == "I'm an extra method"            
assert s.doSomething() == 'Something' 
関連する問題