参考学习网址:www.sxt.cn/java.lang/c…
1.java.lang.Class.isAnonymousClass()
作用:判断类是否为匿名类
参数:无参
返回:当且仅当底层类是匿名类,则返回true;其他返回false
2.java.lang.Class.isArray()
作用:判断类是否为数组类型
参数:无参
返回:当且仅当类是数组类型,则返回true;其他返回false
3.java.lang.Class.isAssignableFrom(Class<?> clazz)
作用:确定此Class对象所表示的类或接口是不一样的,或者说是一个超类或超接口,由指定的Class参数所表示类或接口
参数:Class<?> clazz
返回:当Class为clazz的基类时返回true,否则返回false
解释:通俗说ClassA.isAssignableFrom(ClassB) 则ClassA 是ClassB的基类 也就是 ClassB extends ClassA
4.java.lang.Class.isEnum()
作用:判断类是否为枚举类型
参数:无参
返回:当且仅当类是枚举类型,则返回true;其他返回false
5.java.lang.Class.isInstance(Object obj)
作用:确定指定的对象赋值兼容此Class所表示的对象。它与Java语言instanceof运算符的动态等效。
参数:Object obj
返回:当Obj可以转化为Class类时,返回true;其他返回false
解释:ClassA.isInstance(ObjB) 则 等同于 ObjB instanceof ClassA 也就是说ObjB的类型是可以转化为ClassA类型的 比如list instanceof Collection 即 Collection.class.isInstance(list)
示例:
public static void main(String[] args) {
List<String> stringList = new ArrayList<>();
stringList.add("1");
System.out.println("Collection.class.isInstance(stringList) is " + Collection.class.isInstance(stringList));
}
运行结果:Collection.class.isInstance(stringList) is: true
6.java.lang.Class.isInterface()
作用:判断类是否为接口类型
参数:无参
返回:当且仅当类是接口类型,则返回true;其他返回false
7.java.lang.Class.isLocalClass()
作用:判断类是否为局部类
参数:无参
返回:当且仅当类是局部类,则返回true;其他返回false
8.java.lang.Class.isMemberClass()
作用:判断类是否为成员类
参数:无参
返回:当且仅当类是成员类,则返回true;其他返回false
9.java.lang.Class.isPrimitive()
作用:确定指定的Class对象表示一个基本类型。有九种预定义的Class对象代表的八个基本类型和void。这些都是由Java虚拟机创建的,并且具有相同的名称,它们代表即boolean, byte, char, short, int, long, float, 和double 等原始类型
参数:无参
返回:当且仅当数据类型为基础类型,则返回true;其他返回false
10.java.lang.Class.isSynthetic()
作用:判断类是否为人工合成类
参数:无参
返回:当且仅当这个类是Java语言规范定义的一种合成类,则返回true;其他返回false
11.java.lang.Class.isAnnotation()
作用:判断类是否为注解类型
参数:无参
返回:当且仅当类是注解类型,则返回true;其他返回false
11.java.lang.Class.isAnnotationPresent(Class<?> clazz)
作用:用于检查此Class对象是否包含指定注解
参数:Class<?> clazz)
返回:当且仅当Class上有clazz的注解,则返回true;其他返回false
解释:A.isAnnotationPresent(B.class) 注释B是否在此A上。如果在则返回true;不在则返回false