class对象的isprimitive()、isarray()、isinterface()三个方法分别判断该class是否为基本类型、数组类型、接口类型,均返回boolean,不依赖实例,仅依据类型本质;例如int.class.isprimitive()为true,int[].class.isarray()为true,list.class.isinterface()为true。

Class 对象的这三个方法用于在运行时判断类的类型特征,返回 boolean,常用于反射、泛型处理、序列化、类型检查等场景。它们不依赖实例,只看 Class 本身代表的类型本质。
isPrimitive():判断是否为基本类型
返回 true 当且仅当该 Class 对象表示 Java 的八种基本类型之一:boolean、byte、char、short、int、long、float、double。注意:包装类(如 Integer.class)返回 false;void.class 也返回 true(它被 JVM 视为一种“伪基本类型”)。
-
int.class.isPrimitive()→true -
Integer.class.isPrimitive()→false -
void.class.isPrimitive()→true -
String.class.isPrimitive()→false
isArray():判断是否为数组类型
返回 true 当该 Class 表示任意维度的数组(包括基本类型数组和引用类型数组),与元素类型无关。多维数组(如 int[][])、泛型擦除后的数组(如 List[])都返回 true。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
-
int[].class.isArray()→true -
String[].class.isArray()→true -
int[][].class.isArray()→true -
String.class.isArray()→false -
Object.class.isArray()→false
isInterface():判断是否为接口类型
返回 true 当该 Class 表示一个接口(包括标准接口如 List.class、自定义接口、函数式接口),但不包括注解(@interface 在 JVM 层是 Annotation 类型,其 isInterface() 为 true,因为注解在字节码中确实属于接口的一种)。
-
List.class.isInterface()→true -
Runnable.class.isInterface()→true -
MyInterface.class.isInterface()→true -
@interface MyAnno {}对应的MyAnno.class.isInterface()→true -
ArrayList.class.isInterface()→false -
String.class.isInterface()→false
这三个方法互不排斥:例如 int[].class 是数组、不是基本类型、也不是接口;Comparable[].class 是数组、不是基本类型、元素类型是接口,但自身仍是数组类,isInterface() 为 false。关键在于——它们检查的是当前 Class 实例所代表的**那个类型本身**的分类属性。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










