Pola Record
Uraikan record dalam pola.
Pola Record adalah pelajaran Java Academy gratis di CoddyKit. Ini adalah pelajaran 2 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.
Pola Rekaman
Pola rekaman mencocokkan sebuah rekaman dan membongkar strukturnya, lalu mengikat komponennya ke variabel dalam satu langkah. Anda tidak perlu lagi memanggil setiap pengakses secara manual.
Rekaman untuk Dibongkar
Mulailah dengan rekaman sederhana. Komponennya adalah bagian yang dapat diekstrak oleh pola.
public class Main {
record Point(int x, int y) {}
public static void main(String[] args) {
Point p = new Point(3, 4);
System.out.println(p.x() + ", " + p.y());
}
}Membongkar Struktur dengan instanceof
Daripada menulis instanceof Point p lalu p.x(), tulislah instanceof Point(int x, int y) untuk langsung mengikat x dan y.
public class Main {
record Point(int x, int y) {}
public static void main(String[] args) {
Object obj = new Point(3, 4);
if (obj instanceof Point(int x, int y)) {
System.out.println("Sum: " + (x + y));
}
}
}Komponen Menjadi Variabel Lokal
Nama di dalam pola (x, y) adalah variabel lokal baru yang menyimpan nilai komponen rekaman. Anda dapat memilih namanya sendiri; nama tersebut tidak harus sama dengan nama di rekaman.
public class Main {
record Point(int x, int y) {}
public static void main(String[] args) {
Object obj = new Point(10, 20);
if (obj instanceof Point(int a, int b)) {
System.out.println("a=" + a + " b=" + b);
}
}
}Menggunakan var dalam Pola
Anda dapat menulis var untuk sebuah komponen agar kompilator menyimpulkan tipenya. Ini berguna ketika tipe tersebut panjang.
public class Main {
record Pair(String key, Integer value) {}
public static void main(String[] args) {
Object obj = new Pair("age", 30);
if (obj instanceof Pair(var key, var value)) {
System.out.println(key + " = " + value);
}
}
}Pola dalam Pernyataan Pemilihan
Pola rekaman juga dapat digunakan dalam pernyataan pemilihan, sehingga cabang-cabangnya terbaca seperti bentuk data.
public class Main {
record Point(int x, int y) {}
static String classify(Object obj) {
return switch (obj) {
case Point(int x, int y) when x == y -> "on diagonal";
case Point(int x, int y) -> "at " + x + "," + y;
default -> "not a point";
};
}
public static void main(String[] args) {
System.out.println(classify(new Point(5, 5)));
System.out.println(classify(new Point(1, 2)));
}
}Pencocokan dengan Inferensi Tipe
Tipe komponen dalam pola harus kompatibel dengan tipe yang dideklarasikan pada rekaman. Menggunakan tipe yang tepat atau var adalah pilihan yang aman.
Menggabungkan dengan Penjaga
Tambahkan penjaga when setelah pola rekaman agar pencocokan hanya terjadi ketika nilai yang dibongkar memenuhi suatu kondisi.
public class Main {
record Temperature(double celsius) {}
static String alert(Object o) {
if (o instanceof Temperature(double c) && c > 38.0) {
return "fever: " + c;
}
return "normal";
}
public static void main(String[] args) {
System.out.println(alert(new Temperature(39.5)));
System.out.println(alert(new Temperature(36.6)));
}
}Akses Data yang Lebih Bersih
Pola rekaman sangat berguna ketika Anda hanya memerlukan beberapa bidang. Pola ini menghilangkan rangkaian pemanggilan pengakses dan memperjelas data yang relevan tepat di tempat pencocokan.
Nilai Kosong dan Pola Rekaman
Seperti semua pola instanceof, pola rekaman bernilai false untuk null. Pembongkaran struktur hanya terjadi setelah nilai dipastikan sebagai instans rekaman yang tidak kosong.
Contoh Praktis
Bongkar struktur untuk menghitung nilai langsung dari komponennya.
public class Main {
record Rectangle(int width, int height) {}
static int area(Object o) {
if (o instanceof Rectangle(int w, int h)) {
return w * h;
}
return 0;
}
public static void main(String[] args) {
System.out.println(area(new Rectangle(4, 5)));
System.out.println(area("not a rect"));
}
}Pemeriksaan Singkat
Uji pemahaman Anda tentang pola rekaman.
Rangkuman
Anda telah mempelajari pola rekaman.
- Pola ini menguji tipe rekaman dan membongkar komponennya sekaligus.
- Nama komponen adalah variabel lokal baru yang Anda pilih;
varmenyimpulkan tipenya. - Pola ini berfungsi dalam
instanceofmaupunswitch. - Seperti semua pola, pola ini bernilai false untuk null.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pola Record” gratis?
Ya — teks lengkap “Pola Record” 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 “Pola Record”?
Uraikan record dalam pola. 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 2 dari 4.
Berapa lama pelajaran “Pola Record” 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.