2011-07-25 16 views
1

私はそのクラスのメソッドと同じ名前のフィールドを持つクラスを持っています。 私は面白いです問題は、メソッドの代わりにフィールドを使用しています。Groovy:setフィールドの代わりにメソッドを呼び出す

クラスはjavax.ws.rs.core.Responseであり、メソッド/フィールドはstatusです。 ステータス(...)メソッドをResponse.status(Status.BAD_REQUEST)だけで呼び出すと、ResponseBuilderを返すことができません。

この場合、groovyにメソッドを強制的に使用させる方法はありますか?

答えて

0

この問題の例がありますか?

私はこの簡単なテストを書いた:

class Test { 
    String status 
    void status(String status) { 
    println "called method" 
    } 
} 

new Test().status('tim') 

をそして、私は(それがプロパティを呼び出すようにしようとしません)期待通りにことがcalled methodを印刷し

+0

参照:javax.ws.rs.core.Responseを.status(Status.UNAUTHORIZED).build()。 Response.status(...)がResponseBuilderではなくResponseの実装を返すため、build()メソッドは存在しません。 – Steven

+0

私はクラスを見ることができますが、あなたがどのようにあなたがそれを呼び出すと言っているのか、 'レスポンス'を返すことができないのです。だからこそ私は例を尋ねたので、私はa)自分が言っている問題を検証し、b)コードにエラーがあるかどうかを確認してください。 –

+0

シンプルなコードではこのエラーが発生しないようです。私のコードは次のとおりです:return Response.status(Status.BAD_REQUEST).build()ここで、Responseはjavax.ws.rs.core.Response、Status.BAD_REQUESTはResponse $ Status enum値です。 ResponseのgetStatus()メソッドと競合しているようです。おそらく問題は、Responseが抽象Javaクラスであることですが、それは呼び出す必要があります: public ResponseBuilder status(Status status){ return status((StatusType)status); }; – Steven

関連する問題