Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Tầm quan trọng của lớp MethodHandles trong Java 9


Lớp MethodHandles được giới thiệu trong phiên bản Java 7. Lớp này chủ yếu thêm các phương thức tĩnh (static methods) để cải thiện chức năng, và phân thành các loại như Lookup methods giúp tạo method handles cho phương thức và trường, Combinator methods kết hợp hoặc biến đổi method handles hiện có thành cái mới, và factory methods tạo method handles mô phỏng các hoạt động JVM phổ biến hoặc mẫu điều khiển luồng. Lớp MethodHandles được nâng cấp trong Java 9 để giới thiệu nhiều thay đổi và thêm các phương thức tĩnh mới như arrayLength(), arrayConstructor(), zero(), v.v.

Cú pháp

public class MethodHandles extends Object

Ví dụ

import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;

public class MethodHandlesTest {
public void MethodHandle1() {
try {
MethodHandle methodHandleLength = MethodHandles.arrayLength(int[].class);
int[] array = new int[] {5, 10, 15, 20};
int arrayLength = (int) methodHandleLength.invoke(array);
System.out.println("Độ dài mảng dùng Method Handle: " + arrayLength);
MethodHandle methodHandleConstructor = MethodHandles.arrayConstructor(int[].class);
int[] newArray = (int[]) methodHandleConstructor.invoke(3);
System.out.println("Mảng được tạo bằng Method Handle kích thước: " + newArray.length);
int x = (int) MethodHandles.zero(int.class).invoke();
System.out.println("Giá trị mặc định của int nguyên thủy dùng Method Handles: " + x);
String y = (String) MethodHandles.zero(String.class).invoke();
System.out.println("Giá trị mặc định của String dùng Method Handles: " + y);
} catch (Throwable e) {
e.printStackTrace();
}
}
public static void main(String args[]) {
new MethodHandlesTest().MethodHandle1();
}
}

Kết quả

Độ dài mảng dùng Method Handle: 4
Mảng được tạo bằng Method Handle kích thước: 3
Giá trị mặc định của int nguyên thủy dùng Method Handles: 0
Giá trị mặc định của String dùng Method Handles: null