在Java中,關鍵字"instance"用于判斷一個對象是否屬于特定的類或其子類的實例。它用于實現類型檢查和類型轉換。
以下是"instance"關鍵字的使用方法:
語法:對象 instanceof 類名
示例: if (obj instanceof MyClass) { … }
語法:對象 instanceof 接口名
示例: if (obj instanceof MyInterface) { … }
可以使用"instance"關鍵字進行類型檢查,然后進行類型轉換。
語法:(子類類型) 父類對象
示例: MyClass obj = (MyClass) parentObj;
需要注意的是,當使用"instance"關鍵字進行類型轉換時,需要確保對象實際上是目標類型的實例,否則會拋出ClassCastException異常。因此,在進行類型轉換之前最好先使用"instance"關鍵字進行類型檢查。
示例:
public class Main {
public static void main(String[] args) {
Object obj1 = new MyClass();
Object obj2 = new String("Hello");
if (obj1 instanceof MyClass) {
MyClass myObj1 = (MyClass) obj1;
myObj1.myMethod();
}
if (obj2 instanceof MyClass) {
MyClass myObj2 = (MyClass) obj2; // 這里會拋出ClassCastException異常
myObj2.myMethod();
}
}
}
class MyClass {
public void myMethod() {
System.out.println("MyClass method");
}
}
在上面的例子中,obj1是MyClass類的實例,因此可以安全地進行類型轉換。而obj2是String類的實例,不是MyClass類的實例,因此在進行類型轉換時會拋出ClassCastException異常。