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中文网其他相关文章!