[英]How to find the Class with Reflection API
我试图找到“类”实例的类型(接口或类)。 我可以找到isInterface()或isEnum()。 但我想检查这是否是一个班级。 为什么没有像"isClass()"
? 任何帮助?
我有这个代码:
interface A {
}
class B {
}
public class ReflectionDemo {
public static void main(String[] argv) throws Exception {
Class a = A.class;
System.out.println(a.getCanonicalName());
System.out.println(a.getSimpleName());
System.out.println(a.isInterface());
System.out.println(a.isEnum());
Class b = B.class;
System.out.println(b.getCanonicalName());
System.out.println(b.getSimpleName());
System.out.println(b.isInterface());
System.out.println(b.isEnum());
}
}
误读了这个问题。 由于Java中的每个类型是一种原始的,一个接口,一个类或数组,你只需要:
System.out.println(!b.isPrimitive() && !b.isInterface() && !b.isArray());
顺便说一下,将枚举视为类 - 如果你愿意,你可以用同样的方式排除它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.