java - 如何在 groovy 中列出 JVM 中的所有(groovy)类

标签 java groovy jvm classpath

我正在编写一个 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) 
 }

最佳答案

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

你的目标是什么?

关于java - 如何在 groovy 中列出 JVM 中的所有(groovy)类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2715013/

相关文章:

javascript - 将 JavaScript 转换为 Groovy/Java

kotlin - 自引用对象中是否存在java.lang.ExceptionInInitializerError?

java - 编辑 .bashrc 不会改变 JAVA_HOME

java - 为什么这个 TextView 为空?

Java无法通过设置默认值找到符号错误

Java 为什么将 long (64) 转换为 float (32) 考虑扩大?

java - 除了性能问题,为什么仍然选择 Java 而不是 Groovy/JRuby 等?

jenkins - 在 JenkinsPipelineUnit 中模拟 findFiles

Java 类 : Anonymous vs Nested vs Private

java - 在没有 eclipse 等的情况下调试 java 产品