1.概述
使用 instanceof 关键字,这种方法可以判断一个值是否属于某个类或接口的实例,比如 String s = “hello”; if (s instanceof String) System.out.println(“s 是 String 类型”); 。这种方法只能用于引用数据类型,不能用于基本数据类型。
使用 getClass() 方法和 getName() 方法,这种方法可以获取一个值的具体类名,比如 String s = “hello”; System.out.println(s.getClass().getName()); 会输出 java.lang.String 。这种方法也只能用于引用数据类型,不能用于基本数据类型。
如果你想判断一个值是否是基本数据类型,你可以使用反射中的 Class 类的 isPrimitive() 方法,如果你想判断一个值是否是基本数据类型,你可以使用反射中的 Class 类的 isPrimitive() 方法,比如 int i = 10; if (int.class.isPrimitive()) System.out.println(“i 是基本数据类型”); 。但是这种方法不能具体判断是哪个基本数据类型。
你还可以使用java.lang.reflect.Field类和Character类提供的getType()方法来获取变量的类型
int num = 10;
Field field = num.getClass().getDeclaredField("value");
System.out.println(field.getType()); //输出int
2.示例代码
public class Test {
public static void main(String[] args) {
// 基本数据类型
int i = 10;
double d = 3.14;
boolean b = true;
char c = 'a';
// 引用数据类型
String s = "hello";
Integer ii = new Integer(10);
Double dd = new Double(3.14);
Boolean bb = new Boolean(true);
Character cc = new Character('a');
// 使用 instanceof 判断引用数据类型
if (s instanceof String) System.out.println("s 是 String 类型");
if (ii instanceof Integer) System.out.println("ii 是 Integer 类型");
// 使用 getClass().getName() 判断引用数据类型
System.out.println(s.getClass().getName()); // 输出 java.lang.String
System.out.println(ii.getClass().getName()); // 输出 java.lang.Integer
// 使用 isPrimitive() 判断基本数据类型
if (int.class.isPrimitive()) System.out.println("i 是基本数据类型");
}
}
版权声明:本文为m0_63748493原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。