MENU

Java 変数の型を instanceof で確認する

Daftar isi

Periksa tipe variabelnya.

Program contoh ini menunjukkan cara memeriksa tipe variabel di Java.

Java adalah bahasa pemrograman bertipe statis di mana tipe data dideklarasikan secara eksplisit, sehingga tidak banyak kesempatan untuk memeriksa tipe data. Namun, ketika menggunakan objek yang diwariskan, pemeriksaan tipe data mungkin menjadi perlu.

Cara memeriksa tipe data di Java instanceof Anda dapat menggunakan operator untuk mengevaluasi kelas dan antarmuka menggunakan pernyataan if, seperti berikut:

variabel instanceof クラス

variabel instanceof インターフェース

instanceof Anda dapat menentukan nama kelas atau nama antarmuka di sisi kanan.instanceof Nilai kembaliannya adalah boolean, dan jika bernilai true, variabel tersebut adalah kelas atau antarmuka yang ditentukan.

Obrolan & Messenger Ini adalah perangkat lunak kolaborasi terpadu yang mudah digunakan, yang menggabungkan obrolan bisnis, konferensi web, berbagi file, manajemen jadwal, manajemen dokumen, reservasi ruang rapat, dan manajemen kehadiran. Selain itu, perangkat lunak ini juga menawarkan keamanan yang kuat untuk bisnis.Ini gratis untuk digunakan!

Contoh program

Mari kita mulai dengan pola yang paling sederhana. Jika variabel i adalah bilangan bulat, maka akan mengembalikan nilai true; jika tidak, akan mengembalikan nilai false.

Contoh kode

public static void integerSample() {
    Integer i = 100;
    boolean result = i instanceof Integer;
    System.out.println(result);
}

Hasil keluaran

true

変数 i は Integer なので、結果は true になります。しかし、これでは当たり前すぎて instanceof がなんのためにあるか分かないので、もう少し複雑にします。

instanceof の効果的な使い方

instanceof の効果的な使い方の一つに、その変数がどの子クラスなのかを判定する場合があります。

Contoh kode

Kode contoh tersebut membuat kelas hewan bernama Animal, dan dua kelas, Dog dan Cat, yang mewarisi dari kelas Animal. Setelah membuat instance, metode `play` digunakan untuk mendefinisikan variabel. instanceof Sistem menentukan hal ini dan mengarahkan output konsol sesuai dengan itu.

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("猫じゃらしで遊ぶ");
        }
    }
}

Hasil keluaran

お散歩する
猫じゃらしで遊ぶ

Intinya adalah, di dalam metode `play`, tidak mungkin untuk mengetahui apakah `animal` yang diberikan sebagai argumen adalah anjing atau kucing.

instanceof Jadi, karena kita juga dapat memeriksa instance dari subkelas (Anjing atau Kucing) yang terdapat di dalam superkelas (Hewan), kita dapat menggunakannya dengan cara ini juga.

Periksa apakah antarmuka tertentu telah diimplementasikan.

instanceof の対象となる変数に、ある特定のインターフェースが実装されているか確認できます。例えばこのような使い方ができます。

Contoh kode

次のサンプルコードでは、佐藤さん、鈴木さんクラスを作成し、鈴木さんだけが車を持っている想定で、インターフェース Car を implements しています。goShopping() メソッドは買い物に行く処理を仮定していますが、Car を implements しているか、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("歩いて行く");
        }
    }
}

Hasil keluaran:

歩いて行く
車で行く

Anda dapat melihat bahwa proses bercabang tergantung pada apakah Car diimplementasikan atau tidak.

  • URLをコピーしました!
Daftar isi