Method References (phương Thức Tham Chiếu) Trong Java 8
Có thể bạn quan tâm
Ở bài trước mình đã giới thiệu cách sử dụng lambda expressions rồi, vậy thì bài này ta sẽ bàn về một vấn đề có liên quan mật thiết, đó là phương thức tham chiếu (Method References).
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức. 1. Method References trong Java là gì?
Method References còn được gọi là phương thức tham chiếu, là tính năng được thêm vào trong Java 8. Nó liên quan mật thiết đến lambda expression, cung cấp cú pháp để truy cập đến các hàm khởi tạo constructor hoặc những method của class mà không cần phải khởi tạo chúng, thậm chí bạn cũng có thể sử dụng để gọi method từ các đối tượng object đã khởi tạo.
Giả sử ta có một lambda expression như sau:
str -> System.out.println(str)Thì chúng ta có thể viết lại bằng cách sử dụng Method references.
Bài viết này được đăng tại [free tuts .net]
System.out::printlnChúng ta có 4 kiểu gọi tham chiếu như sau:
- Tham chiếu đến một instance method của một đối tượng - object :: instanceMethod
- Tham chiếu tới static method của một lớp - Class :: staticMethod
- Tham chiếu đến một instance method của một đối tượng tùy ý của một kiểu cụ thể - Class :: instanceMethod
- Tham chiếu đến một phương thức khởi tạo - Class :: new
2. Các ví dụ về Method References trong Java
Ví dụ 1: Tham chiếu đến một instance method của object
@FunctionalInterface interface MyInterface{ void display(); } public class Example { public void myMethod(){ System.out.println("Instance Method"); } public static void main(String[] args) { Example obj = new Example(); // Method reference using the object of the class MyInterface ref = obj::myMethod; // Calling the method of functional interface ref.display(); } }Kết quả:
Instance MethodVí dụ 2: Tham chiếu đến static method của class
import java.util.function.BiFunction; class Multiplication{ public static int multiply(int a, int b){ return a*b; } } public class Example { public static void main(String[] args) { BiFunction<Integer, Integer, Integer> product = Multiplication::multiply; int pr = product.apply(11, 5); System.out.println("Product of given number is: "+pr); } }Kết quả:
Product of given number is: 55Ví dụ 3: Tham chiếu đến instance method của một đối tượng tùy ý của một kiểu cụ thể
import java.util.Arrays; public class Example { public static void main(String[] args) { String[] stringArray = { "Steve", "Rick", "Aditya", "Negan", "Lucy", "Sansa", "Jon"}; /* Method reference to an instance method of an arbitrary * object of a particular type */ Arrays.sort(stringArray, String::compareToIgnoreCase); for(String str: stringArray){ System.out.println(str); } } }Kết quả:
Aditya Jon Lucy Negan Rick Sansa SteveVí dụ 4: Tham chiếu đến phương thức khởi tạo constructor
@FunctionalInterface interface MyInterface{ Hello display(String say); } class Hello{ public Hello(String say){ System.out.print(say); } } public class Example { public static void main(String[] args) { //Method reference to a constructor MyInterface ref = Hello::new; ref.display("Hello World!"); } }Kết quả:
Hello World!Trên là một số ví dụ về cách sử dụng Method reference trong Java.
Từ khóa » Java Là Gì Method
-
Sử Dụng Method Trong Lập Trình Java - Le Vu Nguyen
-
Java Method - Phương Thức Trong Java
-
Định Nghĩa Và Gọi Phương Thức (method) Trong Java - Góc Học IT
-
Phương Thức (Method) Trong Java - Quách Quỳnh
-
Bài 14: Phương Thức (method) Trong Java - Developer Softwares
-
Lớp Và Phương Thức Trong Java
-
Class, Phương Thức Và Trường Trong Java
-
[Tự Học Java] Phương Thức Trong Java »
-
Một Số Khái Niệm Cơ Bản Trong Java - Viblo
-
Cách Xây Dựng Phương Thức (method) Trong Java - FUNiX
-
Giới Thiệu Default Method Trong Java 8 - Viblo
-
Hàm - Phương Thức Trong Java - KungFu Tech
-
Khi Nào Dùng Default Methods Trong Java 8 - Freetuts
-
Java Reflection Là Gì? Hướng Dẫn Java Reflection API | TopDev