檢查變數類型
介紹一個在 Java 中檢查變數類型的範例程式。
Java 是一種明確宣告類型的靜態型別語言,因此沒有機會檢查太多型別。然而,在使用繼承的物件時,類型檢查可能是必要的。
如何檢查 Java 中的類型 實例化 使用運算符,您可以使用 if 語句等評估類別和接口,如下所示。
多變的 類別的實例
多變的 介面實例
實例化 的右側可以指定類別名稱或介面名稱。實例化 傳回值是一個布林值;如果為 true,則變數是指定的類別或介面。
聊天&信使 是一款集商務聊天、網路會議、文件分享、行程管理、文件管理、會議室預約、考勤管理於一體的元件,簡單易用。為企業提供完善的安全保護,免費提供!
範例程式
讓我們從最簡單的模式開始。如果變數 i 是整數,則傳回 true,否則傳回 false。
範例程式碼
public static void integerSample() {
Integer i = 100;
boolean result = i instanceof Integer;
System.out.println(result);
}
輸出結果
true
變數 i 是 Integer,所以結果為 true。然而,這太明顯了,我不知道instanceof是做什麼用的,所以讓我們把它弄得更複雜一些。
有效使用instanceof
instanceof 的一個有效用途是確定變數屬於哪個子類別。
範例程式碼
在範例程式碼中,我們創建了一個動物類Animal、一個繼承於該動物類的Dog類、以及一個Cat類,並在創建實例後,在play方法中設定變數。 實例化 控制台輸出根據判斷進行分支。
class Animal {}
class Dog extends Animal {}
class Cat extends Animal {}
public class Main {
public static void main(String[] args) {
instanceofSample();
}
static void instanceofSample() {
Animal dog = new Dog();
play(dog);
Animal cat = new Cat();
play(cat);
}
static void play(Animal animal) {
if (animal instanceof Dog) {
System.out.println("お散歩する");
} else {
System.out.println("猫じゃらしで遊ぶ");
}
}
}
輸出結果
お散歩する
猫じゃらしで遊ぶ
play 方法的關鍵點在於,不清楚作為參數傳遞的動物是狗還是貓。
實例化 現在,您也可以檢查超類別(動物)中包含的子類別實例(狗或貓),因此您可以像這樣使用它。
檢查特定介面是否已實現
您可以檢查instanceof所針對的變數是否實作了特定介面。例如,您可以這樣使用它。
範例程式碼
在下面的範例程式碼中,創建了 Sato 先生和 Suzuki 先生的類,並假設只有 Suzuki 先生擁有汽車,並實現了 Car 介面。 goShopping() 方法假設去購物的過程,但它實作了 Car 或基於 instanceof 分支控制台輸出。
interface Car {}
class Sato {}
class Suzuki implements Car {}
public class Main {
public static void main(String[] args) throws Exception {
instanceofSample();
}
static void instanceofSample() {
Sato sato = new Sato();
goShopping(sato);
Suzuki suzuki = new Suzuki();
goShopping(suzuki);
}
static void goShopping(Object human) {
if (human instanceof Car) {
System.out.println("車で行く");
} else {
System.out.println("歩いて行く");
}
}
}
輸出結果:
歩いて行く
車で行く
您可以看到處理分支取決於 Car 是否實現。