0Pricing
Java Academy · Pelajaran

Pencocokan Pola untuk instanceof

Ikat variabel sambil menguji tipe.

Pencocokan Pola untuk instanceof adalah pelajaran Java Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Java Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Java Academy mencakup 4 pelajaran total.

Pencocokan Pola untuk Pemeriksaan Tipe

Cara lama menggunakan instanceof adalah menguji lalu melakukan konversi tipe. Pencocokan pola menggabungkan pengujian dan konversi tersebut menjadi satu langkah, dengan mengikat variabel bertipe ketika pengujian berhasil.

Kode Berulang Lama

Kode klasik memeriksa tipe, lalu melakukan konversi ke variabel baru. Kode tersebut berulang dan mudah salah.

public class Main {
    public static void main(String[] args) {
        Object obj = "hello";
        if (obj instanceof String) {
            String s = (String) obj;
            System.out.println(s.length());
        }
    }
}

Bentuk Baru

Pola tipe mendeklarasikan variabel secara langsung: if (obj instanceof String s). Jika hasilnya benar, s sudah berisi nilai yang telah dikonversi.

public class Main {
    public static void main(String[] args) {
        Object obj = "hello";
        if (obj instanceof String s) {
            System.out.println(s.length());
        }
    }
}

Variabel Pengikat

Variabel s disebut variabel pola. Variabel ini berada dalam cakupan di mana pun kompilator dapat membuktikan bahwa pola telah cocok, sehingga kode menjadi lebih singkat sekaligus lebih aman.

Menggunakannya dalam Kondisi

Dalam kondisi if yang sama, Anda dapat menggunakan variabel pola setelah &&, karena kecocokan dijamin pada cabang tersebut.

public class Main {
    public static void main(String[] args) {
        Object obj = "developer";
        if (obj instanceof String s && s.length() > 5) {
            System.out.println("Long string: " + s);
        }
    }
}

Negasi dan Cakupan Alur

Dengan negasi, cakupan berubah secara cerdas. Setelah if (!(obj instanceof String s)) return;, variabel s berada dalam cakupan untuk sisa metode karena kode hanya berlanjut ketika kecocokan berhasil.

public class Main {
    static int safeLength(Object obj) {
        if (!(obj instanceof String s)) {
            return -1;
        }
        return s.length();
    }

    public static void main(String[] args) {
        System.out.println(safeLength("abc"));
        System.out.println(safeLength(42));
    }
}

Menggantikan equals dan Konversi Tipe

Penggunaan yang umum adalah penggantian equals yang rapi: uji tipe dan ikat variabel dalam satu baris, lalu bandingkan bidang-bidangnya.

public class Main {
    static final class Point {
        final int x, y;
        Point(int x, int y) { this.x = x; this.y = y; }
        public boolean equals(Object o) {
            return o instanceof Point p && p.x == x && p.y == y;
        }
        public int hashCode() { return x * 31 + y; }
    }

    public static void main(String[] args) {
        System.out.println(new Point(1, 2).equals(new Point(1, 2)));
        System.out.println(new Point(1, 2).equals(new Point(3, 4)));
    }
}

Menangani Tipe Campuran

Rangkaian cabang else if dengan pola memungkinkan Anda menentukan alur berdasarkan beberapa tipe yang mungkin secara rapi.

public class Main {
    static String describe(Object obj) {
        if (obj instanceof Integer i) {
            return "int " + (i * 2);
        } else if (obj instanceof String s) {
            return "string of length " + s.length();
        } else {
            return "unknown";
        }
    }

    public static void main(String[] args) {
        System.out.println(describe(21));
        System.out.println(describe("hello"));
        System.out.println(describe(3.14));
    }
}

Nilai Kosong Tidak Pernah Cocok

Pola instanceof bernilai false untuk null, sama seperti operator klasiknya. Jadi, variabel pola tidak pernah terikat ke null, sehingga menghilangkan sumber umum pengecualian penunjuk nol.

public class Main {
    public static void main(String[] args) {
        Object obj = null;
        if (obj instanceof String s) {
            System.out.println("matched: " + s);
        } else {
            System.out.println("null or not a String");
        }
    }
}

Kode yang Lebih Bersih dan Aman

Pencocokan pola menghapus konversi tipe yang berulang, mempersempit cakupan sehingga Anda tidak dapat menyalahgunakan variabel, dan hampir terbaca seperti bahasa sehari-hari. Inilah gaya yang disarankan dalam Java modern.

Menyatukan Semuanya

Pengarah alur kecil yang memformat berbagai masukan menggunakan pola.

public class Main {
    static String format(Object o) {
        if (o instanceof Double d) return String.format("%.1f", d);
        if (o instanceof Integer i) return Integer.toString(i);
        if (o instanceof String s && !s.isBlank()) return s.trim();
        return "n/a";
    }

    public static void main(String[] args) {
        System.out.println(format(3.14159));
        System.out.println(format(99));
        System.out.println(format("  spaced  "));
        System.out.println(format(null));
    }
}

Pemeriksaan Singkat

Uji pemahaman Anda tentang pola instanceof.

Rangkuman

Anda telah mempelajari pencocokan pola untuk instanceof.

  • Pencocokan ini menggabungkan pengujian tipe dan konversi tipe menjadi satu ekspresi.
  • Variabel pola memiliki cakupan di tempat kecocokannya telah terbukti.
  • Pola bernilai false untuk null, sehingga menghindari pengecualian penunjuk nol.
  • Pola menyederhanakan penggantian equals dan penentuan alur berdasarkan tipe.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pencocokan Pola untuk instanceof” gratis?

Ya — teks lengkap “Pencocokan Pola untuk instanceof” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Java Academy, upgrade ke CoddyKit PRO. Kursus Java Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Pencocokan Pola untuk instanceof”?

Ikat variabel sambil menguji tipe. Kamu berlatih Java Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Java Academy?

Tidak diperlukan pengalaman sebelumnya. Java Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Pencocokan Pola untuk instanceof” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Java Academy ini?

Ya. Setiap pelajaran Java Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Pencocokan Pola untuk instanceof
  2. Pola Record
  3. Pola Record Bertingkat
  4. Pola dalam switch
← Kembali ke Java Academy