Computer >> Máy Tính >  >> Lập trình >> Java

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


MethodHandles được giới thiệu trong Java 7 phiên bản. Lớp này chủ yếu thêm một số tĩnh phương pháp để cải thiện chức năng và thuộc một số danh mục như Phương pháp tra cứu giúp tạo các xử lý phương thức cho các phương thức và trường, Phương thức bộ kết hợp kết hợp hoặc chuyển đổi các chốt của phương thức có sẵn thành các chốt mới và phương pháp ban đầu để tạo các bộ xử lý phương thức mô phỏng các hoạt động JVM phổ biến khác hoặc các mẫu luồng điều khiển. MethodHandles lớp đã nâng cao 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 () , không () , và 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("Length of Array using Method Handle is: " + arrayLength);

         MethodHandle methodHandleConstructor = MethodHandles.arrayConstructor(int[].class);
         int[] newArray = (int[]) methodHandleConstructor.invoke(3);
         System.out.println("Array Constructed using Method Handle of Size: " + newArray.length);

         int x = (int) MethodHandles.zero(int.class).invoke();
         System.out.println("Default Value of Primitive Integer using Method Handles is: " + x);
         String y = (String) MethodHandles.zero(String.class).invoke();
         System.out.println("Default Value of String using Method Handles is: " + y);
      } catch(Throwable e) {
         e.printStackTrace();
      }
   }
   public static void main(String args[]) {
      new MethodHandlesTest().MethodHandle1();
   }
}

Đầu ra

Length of Array using Method Handle is: 4
Array Constructed using Method Handle of Size: 3
Default Value of Primitive Integer using Method Handles is: 0
Default Value of String using Method Handles is: null