Apakah kaedah sambungan ciri Java yang tiada
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:
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:
Menulis kaedah sambungan
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
dan kaedah toString tatasusunan menggunakan Manifold untuk mentakrif tatasusunan. Kaedah sambungan ManArrayExt.toString(@This Object array):
[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
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):
Tetapi jika ia tatasusunan Jenis primitif, nilai pulangan yang ditunjukkan oleh IDEA ialah:
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:)
—— 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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

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

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

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

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

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

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

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

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
