cari
RumahJavajavaTutorialKumpulan dan unmarshal data objek menggunakan kelas Rekod baharu dalam Java 13

Gunakan kelas Rekod baharu dalam Java 13 untuk memariskan dan menyahmarshal objek data

Memandangkan Java terus berkembang, setiap versi baharu memperkenalkan beberapa ciri dan peningkatan baharu. Di Java 13, kelas Rekod baharu telah diperkenalkan, yang memberikan kami cara ringkas untuk mengisytiharkan dan menggunakan objek data tidak boleh diubah. Dalam artikel ini, kami akan memperkenalkan penggunaan kelas Rekod dan menunjukkan melalui beberapa kod contoh cara menggunakan kelas Rekod kepada objek data marshal dan unmarshal.

Pertama, mari kita fahami konsep kelas Rekod. Kelas Rekod ialah jenis baharu yang merupakan kedua-dua kelas dan antara muka dan digunakan untuk mengisytiharkan objek data tidak boleh diubah. Kelas Rekod menyediakan pelaksanaan lalai, termasuk kaedah seperti equals(), hashCode(), dan toString(). Di samping itu, kelas Rekod secara automatik mencipta pembina untuk memulakan rekod. Tidak seperti kelas biasa, kelas Rekod tidak boleh dilanjutkan dan tidak dibenarkan untuk menentukan medan dan kaedahnya sendiri.

Mari kita berikan contoh mudah untuk menggambarkan penggunaan kelas Rekod. Katakan kita mempunyai objek Orang yang mengandungi nama dan umur.

public record Person(String name, int age) {}

Kod di atas mentakrifkan kelas Orang, yang diisytiharkan menggunakan kelas Rekod. Kelas Orang mempunyai dua medan: nama dan umur. Sekarang kita boleh mencipta objek Orang dan mengakses medannya.

Person person = new Person("Alice", 30);
System.out.println(person.name()); // 输出:Alice
System.out.println(person.age()); // 输出:30

Seperti yang ditunjukkan di atas, kita boleh mendapatkan nilai medan objek Orang melalui kaedah pengakses (nama() dan umur()). Selain itu, kelas Rekod juga menyediakan kaedah lalai toString() supaya kita boleh mencetak objek Orang secara langsung.

Seterusnya, mari kita lihat contoh yang lebih kompleks. Katakan kita mempunyai objek Pelajar yang memanjangkan objek Orang dan menambah medan sekolah.

public record Student(String name, int age, String school) implements Person {}

Kod di atas mentakrifkan kelas Pelajar, yang mewarisi daripada kelas Orang dan menambah medan sekolah. Pada masa yang sama, kami menggunakan kata kunci implements untuk menentukan bahawa kelas Pelajar ialah kelas pelaksanaan antara muka Orang. Objek yang diisytiharkan menggunakan kelas Rekod boleh menjalani pewarisan kelas dan pelaksanaan antara muka sama seperti objek biasa.

Sekarang, mari lihat cara mengawal dan menyahmarshal objek data menggunakan kelas Rekod. Katakan kita mahu menukar objek Orang kepada rentetan JSON dan menyimpannya ke fail.

import com.fasterxml.jackson.databind.ObjectMapper;

public class PersonSerialization {
    public static void main(String[] args) throws Exception {
        Person person = new Person("Alice", 30);
        
        // 编组为JSON字符串
        ObjectMapper mapper = new ObjectMapper();
        String jsonString = mapper.writeValueAsString(person);
        
        // 保存为文件
        FileWriter writer = new FileWriter("person.json");
        writer.write(jsonString);
        writer.close();
        
        System.out.println("Person对象已编组为JSON并保存到文件中");
    }
}

Kod di atas menggunakan kelas ObjectMapper dalam perpustakaan Jackson untuk mengawal objek Person ke dalam rentetan JSON dan menyimpannya ke fail. Dengan memanggil kaedah mapper.writeValueAsString(person), kita boleh menukar objek Person menjadi rentetan JSON. Kami kemudian menggunakan kelas FileWriter untuk menulis rentetan JSON ke fail.

Proses ungrouping adalah bertentangan dengan grouping. Katakan kita membaca rentetan JSON daripada fail dan membongkarnya menjadi objek Orang.

import com.fasterxml.jackson.databind.ObjectMapper;

public class PersonDeserialization {
    public static void main(String[] args) throws Exception {
        // 从文件中读取JSON字符串
        String jsonString = Files.readString(Path.of("person.json"));
        
        // 解组为Person对象
        ObjectMapper mapper = new ObjectMapper();
        Person person = mapper.readValue(jsonString, Person.class);
        
        System.out.println("JSON已解组为Person对象:" + person);
    }
}

Kod di atas menggunakan kelas Fail untuk membaca rentetan JSON daripada fail dan menggunakan kelas ObjectMapper untuk menyahmarshal rentetan JSON menjadi objek Person. Dengan memanggil kaedah mapper.readValue(jsonString, Person.class), kita boleh menukar rentetan JSON kepada objek Person.

Ringkasnya, kami telah mempelajari tentang penggunaan kelas Records baharu dalam Java 13, dan menunjukkan melalui kod sampel cara menggunakan kelas Records untuk mengawal dan menyahmarshal objek data. Kelas Rekod memberikan kami cara ringkas untuk mengisytiharkan dan menggunakan objek data tidak boleh diubah, menjadikan kod lebih mudah dibaca dan boleh dipercayai. Jika anda menggunakan Java 13 atau lebih tinggi, cuba kelas Rekod dan gunakannya pada projek anda.

Atas ialah kandungan terperinci Kumpulan dan unmarshal data objek menggunakan kelas Rekod baharu dalam Java 13. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Terangkan bagaimana JVM bertindak sebagai perantara antara kod Java dan sistem operasi yang mendasari.Terangkan bagaimana JVM bertindak sebagai perantara antara kod Java dan sistem operasi yang mendasari.Apr 29, 2025 am 12:23 AM

JVM berfungsi dengan menukar kod Java ke dalam kod mesin dan menguruskan sumber. 1) Pemuatan Kelas: Muatkan fail kelas. Ke dalam memori. 2) Kawasan data runtime: Menguruskan kawasan memori. 3) Enjin Pelaksanaan: Mentafsirkan atau menyusun bytecode pelaksanaan. 4) Antara muka kaedah tempatan: Berinteraksi dengan sistem operasi melalui JNI.

Terangkan peranan mesin maya Java (JVM) dalam kemerdekaan platform Java.Terangkan peranan mesin maya Java (JVM) dalam kemerdekaan platform Java.Apr 29, 2025 am 12:21 AM

JVM membolehkan Java melintasi platform. 1) Beban JVM, mengesahkan dan melaksanakan bytecode. 2) Kerja JVM termasuk pemuatan kelas, pengesahan bytecode, pelaksanaan tafsiran dan pengurusan ingatan. 3) JVM menyokong ciri -ciri canggih seperti pemuatan dan refleksi kelas dinamik.

Apakah langkah -langkah yang anda ambil untuk memastikan aplikasi Java berjalan dengan betul pada sistem operasi yang berbeza?Apakah langkah -langkah yang anda ambil untuk memastikan aplikasi Java berjalan dengan betul pada sistem operasi yang berbeza?Apr 29, 2025 am 12:11 AM

Aplikasi Java boleh dijalankan pada sistem pengendalian yang berbeza melalui langkah -langkah berikut: 1) Gunakan kelas fail atau laluan untuk memproses laluan fail; 2) menetapkan dan mendapatkan pembolehubah persekitaran melalui System.getenv (); 3) Gunakan Maven atau Gradle untuk menguruskan kebergantungan dan ujian. Keupayaan merentas platform Java bergantung pada lapisan abstraksi JVM, tetapi masih memerlukan pengendalian manual ciri-ciri khusus sistem operasi tertentu.

Adakah terdapat kawasan di mana Java memerlukan konfigurasi atau penalaan khusus platform?Adakah terdapat kawasan di mana Java memerlukan konfigurasi atau penalaan khusus platform?Apr 29, 2025 am 12:11 AM

Java memerlukan konfigurasi dan penalaan khusus pada platform yang berbeza. 1) Laraskan parameter JVM, seperti -XMS dan -XMX untuk menetapkan saiz timbunan. 2) Pilih strategi pengumpulan sampah yang sesuai, seperti ParallelGC atau G1GC. 3) Konfigurasikan perpustakaan asli untuk menyesuaikan diri dengan platform yang berbeza. Langkah -langkah ini dapat membolehkan aplikasi Java melakukan yang terbaik dalam pelbagai persekitaran.

Apakah beberapa alat atau perpustakaan yang dapat membantu anda menangani cabaran khusus platform dalam pembangunan Java?Apakah beberapa alat atau perpustakaan yang dapat membantu anda menangani cabaran khusus platform dalam pembangunan Java?Apr 29, 2025 am 12:01 AM

Osgi, apachecommonslang, jna, danjvmoptionsareeffectiveforhandlingplatform-specificchallengesinjava.1) osgimanagesdependencyandisolatescomponents.2) ApachecommonslangprovideSutilityfung

Bagaimanakah JVM menguruskan koleksi sampah di platform yang berbeza?Bagaimanakah JVM menguruskan koleksi sampah di platform yang berbeza?Apr 28, 2025 am 12:23 AM

JVMmanagesgarbagecollectionacrossplatformseffectivelybyusingagenerationalapproachandadaptingtoOSandhardwaredifferences.ItemploysvariouscollectorslikeSerial,Parallel,CMS,andG1,eachsuitedfordifferentscenarios.Performancecanbetunedwithflagslike-XX:NewRa

Mengapa kod Java boleh dijalankan pada sistem pengendalian yang berbeza tanpa pengubahsuaian?Mengapa kod Java boleh dijalankan pada sistem pengendalian yang berbeza tanpa pengubahsuaian?Apr 28, 2025 am 12:14 AM

Kod Java boleh dijalankan pada sistem pengendalian yang berbeza tanpa pengubahsuaian, kerana falsafah "Write Once, Run, Everywhere" Java dilaksanakan oleh Java Virtual Machine (JVM). Oleh kerana perantara antara bytecode Java yang disusun dan sistem operasi, JVM menerjemahkan bytecode ke dalam arahan mesin tertentu untuk memastikan program itu dapat dijalankan secara bebas di mana -mana platform dengan JVM dipasang.

Huraikan proses menyusun dan melaksanakan program Java, menonjolkan kebebasan platform.Huraikan proses menyusun dan melaksanakan program Java, menonjolkan kebebasan platform.Apr 28, 2025 am 12:08 AM

Penyusunan dan pelaksanaan program Java mencapai kemerdekaan platform melalui Bytecode dan JVM. 1) Tulis kod sumber Java dan menyusunnya ke dalam bytecode. 2) Gunakan JVM untuk melaksanakan bytecode pada mana -mana platform untuk memastikan kod berjalan di seluruh platform.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular