Di Jawa, pentadbir dua kali ganda (::), atau dipanggil pentadbir rujukan strategi, ialah elemen kuat yang dibentangkan dalam Java 8. Ia memberikan kaedah yang ringkas dan kaya untuk merujuk kepada teknik atau pembina tanpa menimbulkannya pentadbir menambah baik pada kod dan meningkatkan koheren kod, menjadikannya instrumen penting untuk pereka bentuk Dalam artikel ini, kami akan menyiasat struktur bahasa pentadbir dua kali ganda, bercakap tentang aplikasinya dan memberikan panduan kod untuk pemahaman yang lebih baik.
.Pengendali titik dua bertindih terdiri daripada dua titik bertindih (::) diapit antara nama kelas atau rujukan objek dan nama kaedah. Ia digunakan sebagai notasi ringkas untuk kaedah rujukan atau pembina di Jawa.
// A functional interface with a single abstract method interface Printer { void print(String message); } // A class that implements the Printer interface class ConsolePrinter { public static void printMessage(String message) { System.out.println(message); } } public class Main { public static void main(String[] args) { Printer printer = ConsolePrinter::printMessage; printer.print("Hello, World!"); } }
Dalam kod di atas, kami menggunakan titik gabungan utiliti yang dipanggil Pencetak untuk menentukan kelas dengan satu kaedah dinamik print(). Kelas ConsolePrinter melaksanakan titik sambungan ini dan menyediakan pelaksanaan untuk kaedah printMessage(). Dalam kelas Principal, kami mencipta contoh Printer menggunakan pengendali bertitik dua untuk merujuk kaedah printMessage() kelas ConsolePrinter. Akhir sekali, kami memanggil kaedah print() contoh pencetak, yang seterusnya memanggil kaedah printMessage().
Untuk menggunakan pengendali bertitik dua di Jawa, ikut langkah ini -
Tentukan antara muka berfungsi dengan kaedah abstrak tunggal.
Laksanakan antara muka dalam kelas dan sediakan pelaksanaan kaedah.
Gunakan operator bertitik dua untuk merujuk kepada kaedah atau pembina
Gunakan pengendali bertindih dua untuk mencipta contoh antara muka berfungsi.
Memanggil kaedah ini pada contoh akan memanggil kaedah atau pembina yang dirujuk.
Pendekatan 1 melibatkan penggunaan operator bertitik dua untuk merujuk kaedah statik kelas. Pendekatan ini berguna apabila kita ingin menghantar rujukan kaedah yang tidak bergantung pada mana-mana pembolehubah contoh.
Contoh// A functional interface with a single abstract method interface Calculator { int calculate(int a, int b); } class MathUtils { public static int add(int a, int b) { return a + b; } } public class Main { public static void main(String[] args) { Calculator calculator = MathUtils::add; int result = calculator.calculate(5, 3); System.out.println("Result: " + result); } }
Result: 8
Kaedah 2: Gunakan pembolehubah contoh untuk menggunakan pengendali bertitik dua untuk rujukan kaedah
Contoh
import java.util.ArrayList; import java.util.List; class Person { private String name; public Person(String name) { this.name = name; } public void printName() { System.out.println(name); } } public class Main { public static void main(String[] args) { List<Person> persons = new ArrayList<>(); persons.add(new Person("Alice")); persons.add(new Person("Bob")); persons.forEach(Person::printName); } }
Alice Bob
Kaedah 3: Gunakan pengendali bertitik dua untuk merujuk kepada kaedah contoh bagi mana-mana objek.
Contoh
import java.util.Arrays; import java.util.List; class StringUtil { public boolean isPalindrome(String s) { String reversed = new StringBuilder(s).reverse().toString(); return s.equals(reversed); } } public class Main { public static void main(String[] args) { List<String> words = Arrays.asList("level", "hello", "radar", "world"); StringUtil stringUtil = new StringUtil(); long count = words.stream().filter(stringUtil::isPalindrome).count(); System.out.println("Number of palindromic words: " + count); } }
Number of palindromic words: 2
Pendekatan 4: Rujukan pembina menggunakan operator dua kolon.
Contoh
import java.util.function.Supplier; class Employee { public String name; public int age; public Employee() { // Default constructor } public Employee(String name, int age) { this.name = name; this.age = age; } public String toString() { return "Employee [name=" + name + ", age=" + age + "]"; } } public class Main { public static void main(String[] args) { Supplier<employee> employeeSupplier = Employee::new; Employee employee = employeeSupplier.get(); employee.name = "John Doe"; employee.age = 30; System.out.println(employee); } } </employee>
Employee [name=John Doe, age=30]
Kesimpulan
Atas ialah kandungan terperinci Operator bertitik dua (::) dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!