繁体   English   中英

使用Java Reflections检索成员类

[英]Using Java Reflections to retrieve member classes

我正在使用.getDeclaredClasses()方法来检索已在object中定义的所有类。 但是,我无法检索该类中定义的匿名类。 这是我正在测试的代码示例:

public class TempCodes
{
  public static void main(String[] args)
  {
    Ball b = new Ball()
    {
      public void hit()
      {
        System.out.println("You hit it!");
      }
    };
    b.hit();
  }

  interface Ball {
    void hit();
  }
}

这就是我的代码的作用:

  memClass = className.getDeclaredClasses();
  if (memClass .length > 0) 
  {
        for (int index = 0 ; index < memClass .length ; index++)
        {
            System.out.println("\t\t\t" + memClass [index]);
        }
  }

谁能帮助我了解如何检索匿名类?

问候,ie

在类路径的帮助下:

final Class<?> cls = TempCodes.class;
String[] names = new File(cls.getResource("").toURI()).list(new FilenameFilter() {
    public boolean accept(File dir, String name) {
        return name.startsWith(cls.getSimpleName());
    }
});
for (String name : names) {
    System.out.println(name);
}

结果:

TempCodes$1.class
TempCodes$Ball.class
TempCodes.class

您必须自己过滤掉所需的信息。

免责声明:不适用于JAR文件,但提示非常清楚:使用反射是不可能的。 我会对此提出疑问,并重新考虑设计或方法。 这里是一些有趣的主题: Java反思:如何检索匿名内部类? 访问内部匿名班级成员

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM