метод метапрограммирования Grails - PullRequest
0 голосов
/ 12 марта 2012

Мне удалось перехватить нестатический метод через

grailsApplication.domainClasses.each { gc ->
 domainClasss = gc.clazz
   domainClass.metaClass.invokeMethod { String name,args ->
    delegate.log.info "printing method $name"
   }
}

и получить желаемый результат

, однако, если я повторяю статический метод, такой как

grailsApplication.domainClasses.each { gc ->
 domainClasss = gc.clazz
   domainClass.metaClass.static.invokeMethod { String name,args ->
    delegate.log.info "printing method $name"
   }
}

он не напечатает желаемый результат, а domainClass [es], у которого есть метод beforeInsert или beforeUpdate, возвращает ошибку вроде:

java.lang.NullPointerException: Cannot invoke method encodePassword() on null object

Я что-то здесь упустил?Надеюсь, кто-нибудь может дать мне объяснения о том, как работает перехват статического метода.

...