Grails でメソッド定義をオーバーライドしたいと考えています。オーバーライドしたいクラスがフレームワークに属しているため、Groovy メタプログラミングを使用しようとしています。
以下は元のクラスです。
class SpringSocialSimpleSignInAdapter implements SignInAdapter {
private RequestCache requestCache
SpringSocialSimpleSignInAdapter(RequestCache requestCache) {
this.requestCache = requestCache;
}
String signIn(String localUserId, Connection<?> connection, NativeWebRequest request) {
SignInUtils.signin localUserId
extractOriginalUrl request
}
}
以下のようにオーバーライドしようとしています
SpringSocialSimpleSignInAdapter.metaClass.signIn = {java.lang.String str, org.springframework.social.connect.Connection conn, org.springframework.web.context.request.NativeWebRequest webreq ->
println 'coming here....' // my implementation here
return 'something'
}
しかし、何らかの理由でオーバーライドが発生していません。私はそれを理解することができません。どんな助けでも大歓迎です。
ありがとう