2016-06-16 5 views
0

にインスタンスメソッドを委任する私はこのような機能を実装するためにfindind方法が容易だ:Groovyは:メタクラス

RESTClient client = new RESTClient("https://api.github.com", JSON) 
class CoreApi {} 
RESTClient.methods*.name.each { name -> 
    if (! CoreApi.methods.contains(name)) { 
    CoreApi.metaClass.static."$name" = {Object... args -> client."$name"(*args)} 
    } 
} 

をし、我々はすべての注釈がためにGroovyで利用可能ですCoreApi.get(path: "https://stackoverflow.com/users/your-user")

使用することができますこの種の振る舞いを実装するか?それは何と呼ばれていますか?

答えて

2

あなたは@Delegate

class CoreApi { 
    @Delegate RESTClient client 
} 

を探しています。しかし、それは、静的メソッド

静的メソッドでは動作しません、GroovyObjectインタフェースからの合成法または方法は、委任

の候補ではありません
関連する問題