MENU

Periksa jenis variabel Java dengan instanceof

Daftar isi

Periksa jenis variabel

Memperkenalkan contoh program untuk memeriksa jenis variabel di Java.

Java adalah bahasa yang diketik secara statis yang mendeklarasikan tipe secara eksplisit, jadi tidak ada kesempatan untuk memeriksa tipe sebanyak itu. Namun, pemeriksaan tipe mungkin diperlukan saat menggunakan objek yang diwarisi.

Cara memeriksa tipe di Java contoh Dengan menggunakan operator, Anda dapat mengevaluasi kelas dan antarmuka dengan pernyataan if, dll. seperti yang ditunjukkan di bawah ini.

variabel contoh kelas

variabel contoh antarmuka

contoh Nama kelas atau nama antarmuka dapat ditentukan di sisi kanan .contoh Nilai yang dikembalikan adalah boolean; jika benar, variabelnya adalah kelas atau antarmuka yang ditentukan.

Obrolan & Messenger adalah groupware yang mengintegrasikan obrolan bisnis, konferensi web, berbagi file, manajemen jadwal, manajemen dokumen, reservasi ruang konferensi, dan manajemen kehadiran dengan cara yang mudah digunakan. Keamanan sempurna untuk bisnis,Tersedia secara gratis!

contoh program

Mari kita mulai dengan pola yang paling sederhana. Mengembalikan nilai benar jika variabel i adalah Integer, salah jika sebaliknya.

Kode sampel

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

Hasil keluaran

true

Variabel i adalah Integer, sehingga hasilnya benar. Namun, ini terlalu jelas dan saya tidak tahu untuk apa instanceof itu, jadi mari kita membuatnya sedikit lebih rumit.

Penggunaan instanceof yang efektif

Salah satu penggunaan instanceof yang efektif adalah untuk menentukan kelas anak mana yang dimiliki suatu variabel.

Kode sampel

Dalam kode contoh, kita membuat kelas hewan Hewan, kelas Anjing yang mewarisi dari kelas hewan, dan kelas Kucing, dan setelah membuat instance, atur variabel dalam metode permainan. contoh Output konsol bercabang berdasarkan penilaian.

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

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

Poin kunci dalam metode bermain ini adalah tidak jelasnya apakah hewan yang diadu adalah anjing atau kucing.

contoh Sekarang, Anda juga dapat memeriksa instance subkelas (Anjing atau Kucing) yang terdapat dalam superkelas (Hewan), sehingga Anda dapat menggunakannya seperti ini.

Periksa apakah antarmuka tertentu diimplementasikan

Anda dapat memeriksa apakah antarmuka tertentu diterapkan untuk variabel yang ditargetkan oleh instanceof. Misalnya, Anda bisa menggunakannya seperti ini.

Kode sampel

Dalam contoh kode di bawah, kelas untuk Pak Sato dan Pak Suzuki dibuat, dan antarmuka Mobil diimplementasikan dengan asumsi hanya Pak Suzuki yang memiliki mobil. Metode goShopping() mengasumsikan proses berbelanja, namun mengimplementasikan Car atau mencabangkan output konsol berdasarkan 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 cabang pemrosesan bergantung pada apakah Car diimplementasikan atau tidak.

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