java 如何判断变量类型
判断变量类型的方法
在Java中,判断变量类型可以通过以下几种方式实现:
使用 instanceof 运算符
instanceof 用于检查对象是否是某个类的实例或其子类的实例,或者是否实现了某个接口。适用于对象类型的判断。
Object obj = "Hello";
if (obj instanceof String) {
System.out.println("变量是String类型");
}
使用 getClass() 方法
getClass() 返回对象的运行时类,可以精确匹配类型(不包括子类或父类)。
Object obj = 123;
if (obj.getClass() == Integer.class) {
System.out.println("变量是Integer类型");
}
对基本类型的判断
基本类型(如 int、double)无法直接使用 instanceof 或 getClass(),通常通过反射或包装类转换判断。
int num = 10;
Class<?> type = Integer.TYPE; // 通过包装类的TYPE字段获取基本类型Class
System.out.println(type == int.class); // 输出 true
反射结合泛型
通过反射获取字段或方法的类型信息,适用于动态类型检查。

import java.lang.reflect.Field;
class Example {
private String name;
}
Field field = Example.class.getDeclaredField("name");
Class<?> fieldType = field.getType();
System.out.println(fieldType == String.class); // 输出 true
注意事项
- 基本类型和包装类型不同(如
int和Integer),需区分处理。 instanceof对null返回false,而getClass()对null抛出NullPointerException。- 泛型类型在运行时会被擦除,无法直接判断泛型的具体类型参数。






