MethodHandles 클래스는 Java 7 버전에서 도입되었습니다. 이 클래스는 주로 일부 정적 메소드 를 추가하여 기능을 향상시키며, 메소드와 필드에 액세스하기 위한 메소드 핸들을 생성하기 위한 메소드 찾기 , 기존 메소드 핸들을 결합하거나 새 메소드 핸들로 변환하기 위한 결합 메소드 등 여러 범주로 나뉩니다. 및 기타 일반적인 JVM 작업이나 제어 흐름 패턴을 시뮬레이션하는 메서드 핸들을 생성하기 위한 팩토리 메서드입니다. Java 9에서는 MethodHandles 클래스가 향상되었고 많은 변경 사항이 도입되었으며 arrayLength(), arrayConstructor(), zero() 등과 같은 새로운 정적 메서드가 추가되었습니다.
<strong>public class MethodHandles extends Object</strong>
import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; public class MethodHandlesTest { public void MethodHandle1() { try { <strong>MethodHandle </strong>methodHandleLength = <strong>MethodHandles</strong>.<strong>arrayLength</strong>(int[].class); int[] array = new int[] {5, 10, 15, 20}; int arrayLength = (int) methodHandleLength.<strong>invoke</strong>(array); System.out.println("Length of Array using Method Handle is: " + arrayLength); <strong>MethodHandle </strong>methodHandleConstructor = <strong>MethodHandles.arrayConstructor</strong>(int[].class); int[] newArray = (int[]) methodHandleConstructor.<strong>invoke</strong>(3); System.out.println("Array Constructed using Method Handle of Size: " + newArray.length); int x = (int) <strong>MethodHandles.zero</strong>(int.class).<strong>invoke()</strong>; System.out.println("Default Value of Primitive Integer using Method Handles is: " + x); String y = (String) <strong>MethodHandles.zero</strong>(String.class).<strong>invoke()</strong>; 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(); } }
<strong>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</strong>
위 내용은 Java 9에서 MethodHandles 클래스의 중요성은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!