메소드 핸들 자바 7에 도입된 클래스 버전. 이 클래스는 주로 몇 가지 정적 방법 기능을 개선하고 조회 방법 과 같은 여러 범주로 나뉩니다. 메서드 및 필드에 대한 메서드 핸들을 만드는 데 도움이 되는 조합 메서드 기존 메소드 핸들을 결합하거나 새로운 핸들로 변환하는 팩토리 메소드 다른 일반적인 JVM 작업을 에뮬레이트하거나 흐름 패턴을 제어하는 메서드 핸들을 생성합니다. 메서드 핸들 Java 9에서 클래스가 향상되어 많은 변경 사항이 도입되고 arrayLength()와 같은 새로운 정적 메서드가 추가되었습니다. , 배열 생성자() , 제로() , 등
구문
public class MethodHandles extends Object
예
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(); } }
출력
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