使用Java反射检索成员类
我正在使用.getDeclaredClasses()方法检索对象中定义的所有类。但是,我无法检索类中定义的匿名类。下面是我正在测试的代码示例:使用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!");
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,失败:)。我要去