Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java反射检索成员类_Java_Reflection - Fatal编程技术网

使用Java反射检索成员类

使用Java反射检索成员类,java,reflection,Java,Reflection,我正在使用.getDeclaredClasses()方法检索对象中定义的所有类。但是,我无法检索类中定义的匿名类。下面是我正在测试的代码示例: public class TempCodes { public static void main(String[] args) { Ball b = new Ball() { public void hit() { System.out.println("You hit it!");

我正在使用.getDeclaredClasses()方法检索对象中定义的所有类。但是,我无法检索类中定义的匿名类。下面是我正在测试的代码示例:

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]);
        }
  }
memClass=className.getDeclaredClasses();
如果(memClass.length>0)
{
for(int index=0;index
有人能帮我理解如何检索匿名类吗

问候,,
darkie

几乎没有类路径的帮助:

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);
}
final Class cls=TempCodes.Class;
字符串[]名称=新文件(cls.getResource(“”.toURI()).list(新文件名筛选器(){
公共布尔接受(文件目录,字符串名称){
返回name.startsWith(cls.getSimpleName());
}
});
for(字符串名称:名称){
System.out.println(名称);
}
结果:

TempCodes$1.class TempCodes$Ball.class TempCodes.class 临时代码$1.5级 临时代码$Ball.class 临时班 你必须自己过滤掉想要的信息


免责声明:不能很好地处理JAR文件,但提示足够清楚:反射是不可能的。我会质疑这样做的必要性,并重新思考设计或方法。以下是一些有趣的话题:和。

@Michael:Infinite loop@BalucC Gah,失败:)。我要去