Corak Record
Nyahstrukturkan record dalam corak
Corak Record ialah pelajaran Java Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Java Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Java Academy merangkumi sejumlah 4 pelajaran.
Corak Rekod
Corak rekod memadankan rekod dan menyahstrukturnya, lalu mengikat komponennya kepada pemboleh ubah dalam satu langkah. Anda tidak perlu lagi memanggil setiap pengakses secara manual.
Rekod untuk Dinyahstrukturkan
Mulakan dengan rekod yang ringkas. Komponennya ialah perkara yang boleh diekstrak oleh corak.
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());
}
}Menyahstruktur dengan instanceof
Daripada menulis instanceof Point p kemudian p.x(), tulis instanceof Point(int x, int y) untuk mengikat x dan y secara terus.
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 Pemboleh Ubah Tempatan
Nama dalam corak (x, y) ialah pemboleh ubah tempatan baharu yang menyimpan nilai komponen rekod. Anda boleh memilih namanya; nama itu tidak perlu sama dengan nama dalam rekod.
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 Corak
Anda boleh menulis var untuk sesuatu komponen supaya pengompil membuat kesimpulan tentang jenisnya. Ini berguna apabila jenis 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);
}
}
}Corak dalam Pernyataan Pemilihan
Corak rekod juga berfungsi dalam pernyataan pemilihan, lalu menjadikan cabang kes kelihatan 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)));
}
}Padanan dengan Inferens Jenis
Jenis komponen dalam corak mestilah serasi dengan jenis yang diisytiharkan oleh rekod. Menggunakan jenis tepat atau var ialah pilihan yang selamat.
Menggabungkan dengan Syarat Pengawal
Tambahkan syarat pengawal when selepas corak rekod untuk memadankan hanya apabila nilai yang dinyahstrukturkan memenuhi sesuatu syarat.
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)));
}
}Capaian Data yang Lebih Kemas
Corak rekod amat berguna apabila anda hanya memerlukan beberapa medan. Corak ini menghapuskan rantaian panggilan pengakses dan menjadikan data yang berkaitan jelas di tempat padanan.
Nilai Kosong dan Corak Rekod
Seperti semua corak instanceof, corak rekod adalah palsu untuk nilai kosong. Penyahstruktur berlaku hanya selepas nilai itu disahkan sebagai tika rekod yang bukan kosong.
Contoh Praktikal
Nyahstrukturkan rekod untuk mengira nilai terus daripada 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"));
}
}Semakan Pantas
Uji pemahaman anda tentang corak rekod.
Ringkasan
Anda telah mempelajari corak rekod.
- Corak ini menguji jenis rekod dan menyahstrukturkan komponennya serentak.
- Nama komponen ialah pemboleh ubah tempatan baharu yang anda pilih;
varmembuat kesimpulan tentang jenisnya. - Corak ini berfungsi dalam
instanceofdanswitch. - Seperti semua corak, corak ini adalah palsu untuk nilai kosong.
Pelajari Java dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 104
- Pelajaran
- 374
Soalan Lazim
Adakah pelajaran “Corak Record” percuma?
Ya — teks penuh “Corak Record” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Java Academy, tingkat taraf kepada CoddyKit PRO. Kursus Java Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Corak Record”?
Nyahstrukturkan record dalam corak Anda berlatih Java Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Java Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Java Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Corak Record” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Java Academy ini?
Ya. Setiap pelajaran Java Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.