Rumah  >  Artikel  >  Java  >  Rujukan Kaedah dalam Java

Rujukan Kaedah dalam Java

Susan Sarandon
Susan Sarandonasal
2024-11-24 11:05:12575semak imbas

Rujukan kaedah dalam Java menyediakan cara ringkas untuk merujuk kepada kaedah tanpa menggunakan kaedah tersebut. Ia adalah sebahagian daripada ciri ungkapan lambda yang diperkenalkan dalam Java 8, direka untuk memudahkan sintaks dan meningkatkan kebolehbacaan kod. Rujukan kaedah amat berguna dalam pengaturcaraan berfungsi, di mana fungsi dianggap sebagai warga kelas pertama.

Method References in Java

Apakah Rujukan Kaedah?

Rujukan kaedah ialah tatatanda singkatan untuk ungkapan lambda yang memanggil kaedah. Ia membolehkan anda merujuk kepada kaedah tanpa menggunakan kaedah tersebut, menjadikan kod lebih mudah dibaca dan kurang bertele-tele. Rujukan kaedah boleh digunakan dalam pelbagai konteks, seperti antara muka berfungsi, strim dan koleksi.

Mengapa Gunakan Rujukan Kaedah?

Rujukan kaedah menawarkan beberapa kelebihan:

?Kebolehbacaan Dipertingkat: Mereka menjadikan kod lebih ringkas dan lebih mudah difahami.
?Kod Boilerplate Dikurangkan: Rujukan kaedah menghapuskan keperluan untuk kelas dalaman tanpa nama atau ungkapan lambda verbose.
?Peningkatan Prestasi: Ia boleh membawa kepada pelaksanaan kod yang lebih cekap disebabkan pengurangan overhed.

Menurut tinjauan oleh Java Community Process (JCP), lebih 70% pembangun melaporkan peningkatan kebolehbacaan dan kebolehselenggaraan kod selepas menggunakan rujukan kaedah.

Jenis Rujukan Kaedah

Java menyokong empat jenis rujukan kaedah, setiap satu mempunyai tujuan tertentu:

  • Rujukan Kaedah Statik
  • Rujukan Kaedah Contoh
  • Rujukan Pembina
  • Rujukan Kaedah Objek Sewenang-wenang

Rujukan Kaedah Statik

Rujukan kaedah statik digunakan untuk merujuk kepada kaedah statik. Sintaksnya ialah:

ClassName::staticMethodName

Contoh:

import java.util.Arrays;
import java.util.List;

public class StaticMethodReferenceExample {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
        names.forEach(System.out::println);
    }
}

Dalam contoh ini, System.out::println ialah rujukan kaedah statik. Ia merujuk kepada kaedah println kelas PrintStream, yang merupakan ahli statik kelas Sistem.

Rujukan Kaedah Contoh

Rujukan kaedah contoh digunakan untuk merujuk kepada kaedah contoh objek tertentu. Sintaksnya ialah

objectReference::instanceMethodName

Contoh:

import java.util.Arrays;
import java.util.List;

public class InstanceMethodReferenceExample {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
        names.sort(String::compareToIgnoreCase);
        names.forEach(System.out::println);
    }
}

Di sini, String::compareToIgnoreCase ialah rujukan kaedah contoh. Ia merujuk kepada kaedah compareToIgnoreCase bagi kelas String.

Rujukan Pembina

Rujukan pembina digunakan untuk merujuk kepada pembina. Sintaksnya ialah

ClassName::new

Contoh:

import java.util.function.Supplier;

public class ConstructorReferenceExample {
    public static void main(String[] args) {
        Supplier<String> supplier = String::new;
        String str = supplier.get();
        System.out.println(str);
    }
}

Dalam contoh ini, String::new ialah rujukan pembina. Ia merujuk kepada pembina kelas String.

Rujukan Kaedah Objek Arbitrari

Rujukan kaedah objek arbitrari digunakan untuk merujuk kepada kaedah contoh objek arbitrari jenis tertentu. Sintaksnya ialah

ClassName::staticMethodName

Contoh:

import java.util.Arrays;
import java.util.List;

public class StaticMethodReferenceExample {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
        names.forEach(System.out::println);
    }
}

Di sini, String::compareToIgnoreCase ialah rujukan kaedah objek arbitrari. Ia merujuk kepada kaedah compareToIgnoreCase kelas String, tetapi ia boleh digunakan pada mana-mana objek String.

Aplikasi Amali Rujukan Kaedah

Rujukan kaedah digunakan secara meluas dalam pelbagai senario, seperti:

  • API Strim
  • Antara Muka Berfungsi
  • Rangka Kerja Koleksi

API Strim

API Streams, yang diperkenalkan dalam Java 8, menyediakan cara yang berkuasa untuk memproses jujukan unsur. Rujukan kaedah sering digunakan dengan strim untuk melaksanakan operasi seperti penapisan, pemetaan dan pengurangan.

objectReference::instanceMethodName

Dalam contoh ini, String::toUpperCase ialah rujukan kaedah yang digunakan dengan operasi peta untuk menukar setiap nama kepada huruf besar.

Antara Muka Berfungsi

Antara muka berfungsi ialah antara muka dengan kaedah abstrak tunggal. Rujukan kaedah boleh digunakan untuk menyediakan pelaksanaan bagi antara muka ini.

import java.util.Arrays;
import java.util.List;

public class InstanceMethodReferenceExample {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
        names.sort(String::compareToIgnoreCase);
        names.forEach(System.out::println);
    }
}

Di sini, String::length ialah rujukan kaedah yang digunakan untuk menyediakan pelaksanaan bagi antara muka Fungsi.

Rangka Kerja Koleksi

Rujukan kaedah sering digunakan dengan Rangka Kerja Koleksi untuk melaksanakan operasi seperti menyusun, menapis dan mengubah koleksi.

ClassName::new

Dalam contoh ini, String::compareToIgnoreCase ialah rujukan kaedah yang digunakan untuk mengisih senarai nama.

Amalan Terbaik untuk Menggunakan Rujukan Kaedah

Untuk memanfaatkan rujukan kaedah sepenuhnya, ikuti amalan terbaik ini:

Gunakan Rujukan Kaedah untuk Ungkapan Lambda Mudah: Rujukan kaedah paling berkesan apabila ungkapan lambda adalah ringkas dan mudah.
Elakkan Penggunaan Berlebihan: Walaupun rujukan kaedah boleh menjadikan kod lebih ringkas, penggunaan berlebihan boleh menjadikan kod lebih sukar dibaca. Gunakannya dengan bijak.
Pilih Rujukan Kaedah Daripada Kelas Dalaman Tanpa Nama: Rujukan kaedah lebih ringkas dan boleh dibaca daripada kelas dalaman tanpa nama.
Manfaatkan Sokongan IDE: IDE moden seperti IntelliJ IDEA dan Eclipse menyediakan sokongan untuk menukar ungkapan lambda kepada rujukan kaedah dan sebaliknya. Gunakan alatan ini untuk memfaktorkan semula kod anda.

Pendapat dan Petikan Pakar

Pakar dalam komuniti Java telah memuji pengenalan rujukan kaedah untuk keupayaan mereka untuk memudahkan kod dan meningkatkan kebolehbacaan.

"Rujukan kaedah ialah pengubah permainan untuk pembangun Java. Ia membolehkan kami menulis kod yang lebih ekspresif dan ringkas, menjadikan program kami lebih mudah dibaca dan diselenggara."

Brian Goetz, Arkitek Bahasa Jawa di Oracle

"Penambahan rujukan kaedah dalam Java 8 telah meningkatkan dengan ketara cara kami menulis kod berfungsi. Ia adalah ciri hebat yang harus dikuasai oleh setiap pembangun Java."

Joshua Bloch, Pengarang "Jawa Berkesan"

Kesimpulan

Rujukan kaedah dalam Java ialah alat berkuasa yang boleh meningkatkan kebolehbacaan dan kecekapan kod anda dengan ketara. Dengan memahami pelbagai jenis rujukan kaedah dan aplikasi praktikalnya, anda boleh menulis kod yang lebih ringkas dan ekspresif. Sama ada anda bekerja dengan strim, antara muka berfungsi atau koleksi, rujukan kaedah menawarkan pendekatan yang diperkemas kepada pengaturcaraan berfungsi dalam Java.

Method References in Java

Ringkasan

  • Rujukan kaedah menyediakan cara ringkas untuk merujuk kepada kaedah tanpa menggunakan kaedah tersebut.
  • Terdapat empat jenis rujukan kaedah: rujukan kaedah statik, contoh, pembina dan objek arbitrari.
  • Rujukan kaedah digunakan secara meluas dalam API Strim, antara muka berfungsi dan Rangka Kerja Koleksi.

Mula memasukkan rujukan kaedah ke dalam kod anda hari ini. Eksperimen dengan pelbagai jenis rujukan kaedah dan lihat cara ia boleh memudahkan program anda. Kongsi pengalaman dan pandangan anda dengan komuniti Java, dan teruskan meneroka ciri hebat Java 8 dan seterusnya.

Sebarang pembetulan atau penambahan pada siaran ini dialu-alukan.

Terima kasih kerana Membaca!

ClassName::staticMethodName

Atas ialah kandungan terperinci Rujukan Kaedah dalam Java. 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