在Java中,關(guān)鍵字"instance"用于判斷一個對象是否屬于特定的類或其子類的實(shí)例。它用于實(shí)現(xiàn)類型檢查和類型轉(zhuǎn)換。
以下是"instance"關(guān)鍵字的使用方法:
語法:對象 instanceof 類名
示例: if (obj instanceof MyClass) { … }
語法:對象 instanceof 接口名
示例: if (obj instanceof MyInterface) { … }
可以使用"instance"關(guān)鍵字進(jìn)行類型檢查,然后進(jìn)行類型轉(zhuǎn)換。
語法:(子類類型) 父類對象
示例: MyClass obj = (MyClass) parentObj;
需要注意的是,當(dāng)使用"instance"關(guān)鍵字進(jìn)行類型轉(zhuǎn)換時,需要確保對象實(shí)際上是目標(biāo)類型的實(shí)例,否則會拋出ClassCastException異常。因此,在進(jìn)行類型轉(zhuǎn)換之前最好先使用"instance"關(guān)鍵字進(jìn)行類型檢查。
示例:
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類的實(shí)例,因此可以安全地進(jìn)行類型轉(zhuǎn)換。而obj2是String類的實(shí)例,不是MyClass類的實(shí)例,因此在進(jìn)行類型轉(zhuǎn)換時會拋出ClassCastException異常。