📜  java 检查类类型 (1)

📅  最后修改于: 2023-12-03 15:01:34.232000             🧑  作者: Mango

Java 检查类类型

在 Java 中,可以通过构造函数 getClass() 或运算符 instanceof 来检查一个对象的类类型,以便在程序运行时对这个对象进行特定的处理。

getClass()

getClass()Object 类中的一个方法,任何 Java 对象都可以调用它。它返回一个 Class 对象,该对象包含了与这个对象相关联的类的相关信息。

Object obj = new String("Hello, world!");

Class objClass = obj.getClass();
System.out.println("Class name: " + objClass.getName()); // Output: Class name: java.lang.String
instanceof

instanceof 运算符用于判断一个对象是否是指定类的实例,或指定类的子类的实例。如果是,返回 true,否则返回 false

Object obj = new String("Hello, world!");

if (obj instanceof String) {
    System.out.println("Object is a string."); // Output: Object is a string.
} else {
    System.out.println("Object is not a string.");
}
类型转换

在运行时,通过检查类类型并根据实际情况进行类型转换,可以实现许多有用的功能。如果对象是指定类的实例,可以将其转换为该类的对象。

Object obj = new String("Hello, world!");

if (obj instanceof String) {
    String str = (String) obj;
    System.out.println(str); // Output: Hello, world!
}

注意:在进行类型转换时要注意安全性。如果不能确定对象的类型,或者对象的实际类型与类型转换不匹配,将会抛出 ClassCastException 异常。

小结

Java 中通过 getClass() 方法和 instanceof 运算符可以检查类类型。使用类型转换可以将一个对象转换为它的实际类型。但是要注意类型转换的安全性,避免抛出 ClassCastException 异常。