代码之家  ›  专栏  ›  技术社区  ›  Dan

如何在groovy中列出所有的类

  •  2
  • Dan  · 技术社区  · 15 年前

    我正在编写一个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 回复  |  直到 15 年前
        1
  •  1
  •   armandino    15 年前

    有一个 example of how to do this in java ,它也应该与groovy一起工作。我认为这是一个粗略的方法。

    你的目标是什么?