Jadual Kandungan
Apakah kaedah sambungan
Penulisan tradisional:
Menggunakan penulisan Strim:
Cara untuk laksanakannya dalam kaedah Java Extension
Syarat penyediaan
Menulis kaedah sambungan
Kaedah sambungan tatasusunan
Kaedah statik lanjutan
Rumah Java javaTutorial Apakah kaedah sambungan ciri Java yang tiada

Apakah kaedah sambungan ciri Java yang tiada

May 20, 2023 pm 04:58 PM
java

    Apakah kaedah sambungan

    Kaedah lanjutan ialah keupayaan untuk "menambah" kaedah terus kepada jenis sedia ada tanpa mencipta yang baharu? . jenis terbitan, susun semula atau ubah suai jenis sedia ada. Apabila memanggil kaedah sambungan, tidak ada perbezaan yang jelas berbanding dengan memanggil kaedah yang sebenarnya ditakrifkan dalam jenis tersebut.

    Mengapa kaedah sambungan diperlukan

    Pertimbangkan untuk melaksanakan fungsi berikut: selepas mengeluarkan rentetan yang mengandungi berbilang ID produk daripada Redis (setiap ID produk dipisahkan dengan koma), mula-mula bandingkan ID produk Alih keluar pendua (dan kekalkan susunan elemen), dan akhirnya gunakan koma untuk menyambungkan ID produk.

    Penulisan tradisional:

    Menggunakan penulisan Strim:

    Anggap bahawa kaedah sambungan boleh dilaksanakan di Java, dan kami menambah kaedah sambungan keList untuk tatasusunan (tukar tatasusunan menjadi List) , tambah kaedah sambungan kepadaSet untuk Senarai (menukar Senarai menjadi LinkedHashSet), dan tambah kaedah sambungan join untuk Koleksi (untuk menyambungkan bentuk rentetan elemen dalam koleksi menggunakan penyambung yang diberikan), maka kami akan dapat menulis kod seperti ini:

    Saya percaya anda sudah mempunyai jawapan mengapa kaedah sambungan diperlukan pada ketika ini:

    boleh terus meningkatkan perpustakaan kelas sedia ada dan bukannya menggunakan kelas alat

    Gunakan kelas alat untuk menulis kod dengan lebih lancar dan selesa menggunakan kaedah jenis itu sendiri

    Kod lebih mudah dibaca kerana ia adalah panggilan berantai dan bukannya menggunakan anak patung bersarang kaedah statik

    Cara untuk laksanakannya dalam kaedah Java Extension

    Mari kita tanya dahulu tentang ChatGPT yang popular baru-baru ini:

    Apakah kaedah sambungan ciri Java yang tiada

    Pandangan ChatGPT ialah di Java, kaedah sambungan disediakan melalui kelas alat Dilaksanakan dengan kaedah statik. Jadi seterusnya saya akan memperkenalkan teknologi hitam serba baharu:

    Manifold

    Syarat penyediaan

    Manifold dan Lombok berfungsi dengan cara yang sama, kedua-duanya disusun melalui pemproses anotasi yang diproses apabila . Untuk menggunakan Manifold dengan berkesan, anda perlu memasang pemalam Manifold IDEA

    dalam IDEA dan kemudian tambah anotasiProcessorPaths pada pemalam-pengkompil maven pom projek:

    Jika anda menggunakan Lombok dalam projek anda, Lombok perlu ditambahkan ke annotationProcessorPaths:

    Dalam JDK, kaedah split String menggunakan rentetan sebagai parameter, iaitu, String[] split (String). Sekarang mari kita tambahkan kaedah sambungan String[] split(char) ke String: Split mengikut aksara yang diberikan.

    Tulis kaedah sambungan berdasarkan Manifold:

    Anda boleh menemui kaedah statik yang pada asasnya merupakan kelas alat, tetapi terdapat beberapa keperluan:

    Kelas alat perlu menggunakan @Extension Manifold anotasi

    Dalam kaedah statik, parameter jenis sasaran perlu diberi anotasi dengan @This

    Nama pakej kelas alat perlu diakhiri dengan sambungan. Jenis sasaran nama kelas yang layak sepenuhnya

    ——Pelajar yang telah menggunakan C# mungkin akan tersenyum secara sedar Ini adalah kaedah lanjutan C# yang ditiru.

    Mengenai perkara 3, sebab keperluan ini ialah Manifold berharap untuk mencari kaedah sambungan dalam projek dengan cepat, mengelakkan pengimbasan anotasi semua kelas dalam projek dan meningkatkan kecekapan pemprosesan.

    mempunyai keupayaan untuk melanjutkan kaedah, kini kita boleh memanggilnya seperti ini:

    Amazing! Dan anda boleh mendapati bahawa System.out.println(numStrs.toString()) sebenarnya mencetak bentuk rentetan objek tatasusunan - bukan alamat objek tatasusunan. Semak imbas App.class yang dinyahkompilasi dan perhatikan bahawa panggilan kaedah sambungan telah digantikan dengan panggilan kaedah statik

    Apakah kaedah sambungan ciri Java yang tiada

    dan kaedah toString tatasusunan menggunakan Manifold untuk mentakrif tatasusunan. Kaedah sambungan ManArrayExt.toString(@This Object array):

    Apakah kaedah sambungan ciri Java yang tiada

    [Ljava.lang.String;@511d50c0 Apa kejadahnya, Selamat tinggal, tidak akan berjumpa lagi~

    Oleh kerana panggilan kaedah sambungan digantikan dengan panggilan kaedah statik pada masa penyusunan, menggunakan kaedah sambungan Manifold, tiada masalah walaupun objek kaedah panggilan adalah batal, kerana kod yang diproses melepasi null sebagai parameter kepada statik yang sepadan kaedah. Contohnya, apabila melanjutkan Koleksi:

    dan kemudian memanggil:

    java.lang.NullPointerException, Selamat tinggal, tidak akan berjumpa lagi~

    Kaedah sambungan tatasusunan

    Apakah kaedah sambungan ciri Java yang tiada

    Kami melihat List ditulis seperti ini: @Self digunakan untuk menunjukkan jenis nilai beranotasi jika ia adalah @Self, iaitu @Self(false), yang mewakili nilai beranotasi. Nilai adalah jenis yang sama dengan nilai anotasi @Ini (benar) menunjukkan jenis elemen dalam tatasusunan.

    Untuk tatasusunan objek, kita dapat melihat bahawa kaedah toList mengembalikan Senarai yang sepadan (T ialah jenis elemen tatasusunan):

    Apakah kaedah sambungan ciri Java yang tiada

    Tetapi jika ia tatasusunan Jenis primitif, nilai pulangan yang ditunjukkan oleh IDEA ialah:

    Apakah kaedah sambungan ciri Java yang tiada

    Tetapi saya menggunakan Java, bagaimana boleh memadam generik kaedah mempunyai fungsi yang hebat seperti Senarai - Jadi anda boleh hanya gunakan jenis asli untuk menerima nilai pulangan ini:)

    Apakah kaedah sambungan ciri Java yang tiada

    —— Harapkan Projek Valhalla akan dikeluarkan tidak lama lagi.

    Kami sering melihat dalam pelbagai projek bahawa setiap orang mula-mula membungkus objek ke dalam Pilihan, dan kemudian melakukan penapisan, peta, dsb. Melalui pemetaan jenis @Self, anda boleh menambah kaedah yang sangat praktikal pada Objek:

    Kemudian mana-mana objek akan mempunyai kaedah asOpt().

    Berbanding dengan pembungkusan luar biasa yang perlu dilakukan sebelum ini:

    Anda kini boleh menggunakan Pilihan secara semula jadi:

    Sudah tentu, Object ialah kelas induk bagi semua kelas, jadi Anda masih perlu berfikir dengan teliti sama ada sesuai untuk melakukannya.

    Kaedah statik lanjutan

    Kita semua tahu bahawa Java9 menambahkan kaedah kilang pada koleksi:

    Bukankah ia menggoda? Kerana jika anda tidak menggunakan Java 9 dan ke atas (Java 8: tunjukkan saya kad ID anda), anda perlu menggunakan perpustakaan seperti Guava - namun, ImmutableList.of tidak sebaik List.of yang digunakan Ia datang secara semula jadi .

    Tidak mengapa, Manifold berkata: "Tidak mengapa, saya akan mengambil tindakan". Memperluaskan kaedah statik berdasarkan Manifold ialah menambah @Extension kepada kaedah statik kelas lanjutan:

    Kemudian anda boleh menipu diri anda untuk menggunakan versi selepas Java8 - anda boleh melakukan apa sahaja yang anda mahu, saya menggunakan Java8.

    BTW, kerana Object ialah kelas induk bagi semua kelas, jika anda menambah kaedah sambungan statik pada Object, ini bermakna anda boleh terus mengakses kaedah statik ini di mana-mana sahaja tanpa perlu mengimport - Tahniah Anda, buka kunci "fungsi teratas".

    Atas ialah kandungan terperinci Apakah kaedah sambungan ciri Java yang tiada. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan Laman Web ini
    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

    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

    AI Hentai Generator

    AI Hentai Generator

    Menjana ai hentai secara percuma.

    Artikel Panas

    Repo: Cara menghidupkan semula rakan sepasukan
    1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
    2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
    Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
    1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

    Alat panas

    Notepad++7.3.1

    Notepad++7.3.1

    Editor kod yang mudah digunakan dan percuma

    SublimeText3 versi Cina

    SublimeText3 versi Cina

    Versi Cina, sangat mudah digunakan

    Hantar Studio 13.0.1

    Hantar Studio 13.0.1

    Persekitaran pembangunan bersepadu PHP yang berkuasa

    Dreamweaver CS6

    Dreamweaver CS6

    Alat pembangunan web visual

    SublimeText3 versi Mac

    SublimeText3 versi Mac

    Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

    Akar Kuasa Dua di Jawa Akar Kuasa Dua di Jawa Aug 30, 2024 pm 04:26 PM

    Panduan untuk Square Root di Java. Di sini kita membincangkan cara Square Root berfungsi di Java dengan contoh dan pelaksanaan kodnya masing-masing.

    Nombor Sempurna di Jawa Nombor Sempurna di Jawa Aug 30, 2024 pm 04:28 PM

    Panduan Nombor Sempurna di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor Perfect dalam Java?, contoh dengan pelaksanaan kod.

    Penjana Nombor Rawak di Jawa Penjana Nombor Rawak di Jawa Aug 30, 2024 pm 04:27 PM

    Panduan untuk Penjana Nombor Rawak di Jawa. Di sini kita membincangkan Fungsi dalam Java dengan contoh dan dua Penjana berbeza dengan contoh lain.

    Nombor Armstrong di Jawa Nombor Armstrong di Jawa Aug 30, 2024 pm 04:26 PM

    Panduan untuk Nombor Armstrong di Jawa. Di sini kita membincangkan pengenalan kepada nombor Armstrong di java bersama-sama dengan beberapa kod.

    Weka di Jawa Weka di Jawa Aug 30, 2024 pm 04:28 PM

    Panduan untuk Weka di Jawa. Di sini kita membincangkan Pengenalan, cara menggunakan weka java, jenis platform, dan kelebihan dengan contoh.

    Nombor Smith di Jawa Nombor Smith di Jawa Aug 30, 2024 pm 04:28 PM

    Panduan untuk Nombor Smith di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor smith di Jawa? contoh dengan pelaksanaan kod.

    Soalan Temuduga Java Spring Soalan Temuduga Java Spring Aug 30, 2024 pm 04:29 PM

    Dalam artikel ini, kami telah menyimpan Soalan Temuduga Spring Java yang paling banyak ditanya dengan jawapan terperinci mereka. Supaya anda boleh memecahkan temuduga.

    Cuti atau kembali dari Java 8 Stream Foreach? Cuti atau kembali dari Java 8 Stream Foreach? Feb 07, 2025 pm 12:09 PM

    Java 8 memperkenalkan API Stream, menyediakan cara yang kuat dan ekspresif untuk memproses koleksi data. Walau bagaimanapun, soalan biasa apabila menggunakan aliran adalah: bagaimana untuk memecahkan atau kembali dari operasi foreach? Gelung tradisional membolehkan gangguan awal atau pulangan, tetapi kaedah Foreach Stream tidak menyokong secara langsung kaedah ini. Artikel ini akan menerangkan sebab -sebab dan meneroka kaedah alternatif untuk melaksanakan penamatan pramatang dalam sistem pemprosesan aliran. Bacaan Lanjut: Penambahbaikan API Java Stream Memahami aliran aliran Kaedah Foreach adalah operasi terminal yang melakukan satu operasi pada setiap elemen dalam aliran. Niat reka bentuknya adalah

    See all articles