判断值类型(Java)

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 是基本数据类型");
        
    }
}

猜你喜欢

转载自blog.csdn.net/m0_63748493/article/details/129331900