Как перечислить все (классные) классы в JVM в классном - PullRequest
2 голосов
/ 26 апреля 2010

Я пишу DelegatingMetaClass, который я хотел бы применить ко всем классам Groovy в моем проекте, но я не знаю, как получить все классы в проекте?

Вот код:

 /*
 This will work ok, since I know Foo beforehand, but what about classes 
 that do not exist yet?
 */
 def myMetaClass = new DelegatingMetaClass(Foo.class)
 InvokerHelper.metaRegistry.setMetaClass(Foo.class, myMetaClass)    

 /*
 how to do this?
 allGroovyClasses.each{
      def myMetaClass = new DelegatingMetaClass(it)
      InvokerHelper.metaRegistry.setMetaClass(it, myMetaClass)  
         }
 */


 class SimpleInterceptor extends DelegatingMetaClass{


 public SimpleInterceptor(final Class aclass) {
   super(aclass);    
   initialize();
 }

 public Object getProperty(Object object, String prop) {
     println ("I am in a property interceptor!!!")
   return super.getProperty(object, prop)
 }

 public Object invokeMethod(Object a_object, String a_methodName, Object[] a_arguments)
 {
     println ("I am in a method interceptor!!!")
     return super.invokeMethod(a_object, a_methodName, a_arguments) 
 }

1 Ответ

1 голос
/ 27 апреля 2010

Есть пример того, как это сделать в Java , который также должен работать с groovy. Я думаю, что это схематичный способ сделать это.

Какова ваша цель?

...