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
- Pencocokan Pola untuk instanceof
- Pola Record
- Pola Record Bertingkat
- Pola dalam switch