cari
RumahJavajavaTutorialCara menggunakan Padanan Corak untuk pemutus jenis dan pengekstrakan dalam Java 14

Cara menggunakan Padanan Corak untuk pemutus jenis dan pengekstrakan dalam Java 14

Ciri yang sangat berkuasa diperkenalkan dalam Java 14 - Padanan Corak. Ciri ini menjadikan pertimbangan jenis lebih ringkas dan mudah, terutamanya apabila melakukan balingan dan pengekstrakan jenis. Artikel ini akan memperkenalkan cara menggunakan Padanan Corak untuk melaksanakan pemutus dan pengekstrakan jenis dalam Java 14, dan menggambarkannya melalui contoh kod.

Dalam versi Java sebelum ini, kami biasanya perlu melalui dua langkah untuk melakukan pemutus jenis dan pengekstrakan. Mula-mula, kita perlu menyemak jenis objek menggunakan kata kunci instanceof dan kemudian menukarnya kepada jenis sasaran menggunakan cast. Pendekatan ini sangat membosankan dan terdedah kepada ralat, terutamanya apabila berurusan dengan hubungan objek yang kompleks.

Padanan Corak dalam Java 14 memudahkan proses penentuan jenis dengan memperkenalkan contoh sintaks dan pemadanan corak baharu dalam penyataan suis. Mari lihat beberapa contoh untuk memahami cara menggunakannya.

Pertama, mari kita pertimbangkan contoh mudah. Katakan kita mempunyai Bentuk kelas abstrak, yang mengandungi kaedah yang dipanggil kawasan, dan kita perlu mengira kawasan berdasarkan bentuk yang berbeza. Kita boleh menentukan beberapa kelas bentuk tertentu, seperti Bulatan, Segiempat dan Segitiga.

abstract class Shape {
    abstract double area();
}

class Circle extends Shape {
    double radius;

    Circle(double radius) {
        this.radius = radius;
    }

    double area() {
        return Math.PI * radius * radius;
    }
}

class Rectangle extends Shape {
    double width;
    double height;

    Rectangle(double width, double height) {
        this.width = width;
        this.height = height;
    }

    double area() {
        return width * height;
    }
}

class Triangle extends Shape {
    double base;
    double height;

    Triangle(double base, double height) {
        this.base = base;
        this.height = height;
    }

    double area() {
        return 0.5 * base * height;
    }
}

Dalam versi Java sebelumnya, kami sering perlu menggunakan instanceof untuk menyemak jenis bentuk tertentu dan melakukan penukaran jenis cast:

Shape shape = ...; // 初始化一个形状对象

if (shape instanceof Circle) {
    Circle circle = (Circle) shape; // 强制类型转换
    double area = circle.area();
    // 其他处理...
} else if (shape instanceof Rectangle) {
    Rectangle rectangle = (Rectangle) shape;
    double area = rectangle.area();
    // 其他处理...
} else if (shape instanceof Triangle) {
    Triangle triangle = (Triangle) shape;
    double area = triangle.area();
    // 其他处理...
}

Dalam Java 14, kami boleh menggunakan sintaks instanceof baharu untuk penulisan kod yang lebih ringkas :

Shape shape = ...; // 初始化一个形状对象

if (shape instanceof Circle circle) {
    double area = circle.area();
    // 其他处理...
} else if (shape instanceof Rectangle rectangle) {
    double area = rectangle.area();
    // 其他处理...
} else if (shape instanceof Triangle triangle) {
    double area = triangle.area();
    // 其他处理...
}

Dalam sintaks baharu ini, kami mengalihkan kod hantar ke sebelah kanan instanceof, dan bulatan pembolehubah tempatan, segi empat tepat dan segi tiga boleh digunakan terus dalam kod berikutnya. Kelebihan ini ialah kita tidak perlu mengisytiharkan pembolehubah tempatan ini secara eksplisit, yang meningkatkan kesederhanaan dan kebolehbacaan kod.

Selain pertimbangan taip dalam pernyataan bersyarat, Padanan Corak juga boleh digunakan dalam pernyataan suis. Dalam versi Java sebelumnya, kami hanya boleh menggunakan pemalar untuk pemadanan dalam kes pernyataan suis. Dalam Java 14, kita boleh menggunakan corak jenis untuk padanan. Mari lihat contoh:

Shape shape = ...; // 初始化一个形状对象

switch (shape) {
    case Circle circle -> {
        double area = circle.area();
        // 其他处理...
    }
    case Rectangle rectangle -> {
        double area = rectangle.area();
        // 其他处理...
    }
    case Triangle triangle -> {
        double area = triangle.area();
        // 其他处理...
    }
}

Dalam pernyataan suis baharu ini, kita boleh memadankan mengikut jenis bentuk dan menggunakan bulatan, segi empat tepat dan segitiga pembolehubah tempatan secara langsung dalam kod berikutnya. Dengan cara ini, kita tidak perlu berulang kali melakukan pemeriksaan jenis dan penukaran jenis paksa, yang sangat memudahkan penulisan dan penyelenggaraan kod.

Untuk meringkaskan, menggunakan Padanan Pola untuk penghantaran jenis dan pengekstrakan dalam Java 14 boleh memudahkan kod kami dan meningkatkan kebolehbacaan dan kebolehselenggaraan kod. Dengan memperkenalkan contoh baharu sintaks dan padanan corak dalam penyataan suis, kami boleh menghapuskan kod berlebihan dan mengelakkan ralat penukaran jenis.

Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa Padanan Corak hanya boleh digunakan dalam Java 14 dan ke atas. Dalam versi Java yang lebih lama, kita masih perlu menggunakan kaedah tradisional untuk penentuan jenis dan paksaan. Oleh itu, apabila menggunakan Padanan Corak, adalah penting untuk memastikan bahawa kod anda berjalan pada versi Java yang betul.

Saya harap artikel ini akan membantu anda memahami dan menggunakan Padanan Pola dalam Java 14. Menulis kod yang jelas dan ringkas adalah usaha setiap pengaturcara, dan Pemadanan Corak merupakan langkah besar bagi bahasa Java untuk bergerak ke arah matlamat ini.

Atas ialah kandungan terperinci Cara menggunakan Padanan Corak untuk pemutus jenis dan pengekstrakan dalam Java 14. 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
Apakah aspek pembangunan Java yang bergantung kepada platform?Apakah aspek pembangunan Java yang bergantung kepada platform?Apr 26, 2025 am 12:19 AM

Javadevelopmentisnotentirelyplatform-independentduetoseveralfactors.1) jvmvariationsaffecperformanceandbehavioracrossdifferentos.2) nativelibrariesviajniintroduceplatform-specificiSsues.3)

Adakah terdapat perbezaan prestasi semasa menjalankan kod Java pada platform yang berbeza? Kenapa?Adakah terdapat perbezaan prestasi semasa menjalankan kod Java pada platform yang berbeza? Kenapa?Apr 26, 2025 am 12:15 AM

Kod Java akan mempunyai perbezaan prestasi apabila berjalan pada platform yang berbeza. 1) Strategi pelaksanaan dan pengoptimuman JVM adalah berbeza, seperti OracleJDK dan OpenJDK. 2) Ciri -ciri sistem operasi, seperti pengurusan memori dan penjadualan thread, juga akan menjejaskan prestasi. 3) Prestasi boleh ditingkatkan dengan memilih JVM yang sesuai, menyesuaikan parameter JVM dan pengoptimuman kod.

Apakah beberapa batasan kemerdekaan platform Java?Apakah beberapa batasan kemerdekaan platform Java?Apr 26, 2025 am 12:10 AM

Java'splatformindecthaslimitationscludingperformanceOverhead, VersionCompateIssues, cabaranwithnativelibraryintegration, platform-specificfeatures, danjvminstallation/penyelenggaraan.

Terangkan perbezaan antara kemerdekaan platform dan pembangunan silang platform.Terangkan perbezaan antara kemerdekaan platform dan pembangunan silang platform.Apr 26, 2025 am 12:08 AM

Platformindependenceallowsprogramstorunonanyplatformwithoutmodification,whilecross-platformdevelopmentrequiressomeplatform-specificadjustments.Platformindependence,exemplifiedbyJava,enablesuniversalexecutionbutmaycompromiseperformance.Cross-platformd

Bagaimanakah kompilasi hanya dalam masa (JIT) mempengaruhi prestasi dan kemerdekaan platform Java?Bagaimanakah kompilasi hanya dalam masa (JIT) mempengaruhi prestasi dan kemerdekaan platform Java?Apr 26, 2025 am 12:02 AM

JITcompilationinJavaenhancesperformancewhilemaintainingplatformindependence.1)Itdynamicallytranslatesbytecodeintonativemachinecodeatruntime,optimizingfrequentlyusedcode.2)TheJVMremainsplatform-independent,allowingthesameJavaapplicationtorunondifferen

Mengapa Java adalah pilihan yang popular untuk membangunkan aplikasi desktop silang platform?Mengapa Java adalah pilihan yang popular untuk membangunkan aplikasi desktop silang platform?Apr 25, 2025 am 12:23 AM

Javaispopularforcross-platformdesktopapplicationsduetoits "writeOnce, runanywhere" falsafah.1) itusesBytecodethatrunsonanyjvm-equippedplatform.2) LibrariesLikeswingandjavafxhelpcreatenativeS.3) ITseShipBareSivaryS

Bincangkan situasi di mana menulis kod khusus platform di Java mungkin diperlukan.Bincangkan situasi di mana menulis kod khusus platform di Java mungkin diperlukan.Apr 25, 2025 am 12:22 AM

Alasan untuk menulis kod khusus platform di Java termasuk akses kepada ciri sistem operasi tertentu, berinteraksi dengan perkakasan tertentu, dan mengoptimumkan prestasi. 1) Gunakan JNA atau JNI untuk mengakses Windows Registry; 2) Berinteraksi dengan pemandu perkakasan khusus Linux melalui JNI; 3) Gunakan logam untuk mengoptimumkan prestasi permainan pada macOS melalui JNI. Walau bagaimanapun, menulis kod khusus platform boleh menjejaskan mudah alih kod, meningkatkan kerumitan, dan berpotensi menimbulkan risiko overhead dan keselamatan.

Apakah trend masa depan dalam pembangunan Java yang berkaitan dengan kemerdekaan platform?Apakah trend masa depan dalam pembangunan Java yang berkaitan dengan kemerdekaan platform?Apr 25, 2025 am 12:12 AM

Java akan meningkatkan lagi kemerdekaan platform melalui aplikasi awan asli, penempatan pelbagai platform dan interoperabilitas silang bahasa. 1) Aplikasi asli awan akan menggunakan GraalVM dan Quarkus untuk meningkatkan kelajuan permulaan. 2) Java akan diperluaskan ke peranti tertanam, peranti mudah alih dan komputer kuantum. 3) Melalui Graalvm, Java akan mengintegrasikan dengan lancar dengan bahasa seperti Python dan JavaScript untuk meningkatkan interoperabilitas silang bahasa.

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

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma