繁体   English   中英

如何使用Reflection API查找类

[英]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.

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