Maison >Java >javaDidacticiel >Quelle est l'importance de la classe MethodHandles dans Java 9 ?
La classe
MethodHandles a été introduite dans la version Java 7. Cette classe ajoute principalement des méthodes statiques pour améliorer les fonctionnalités et est divisée en plusieurs catégories, telles que méthodes de recherche pour créer des descripteurs de méthode pour accéder aux méthodes et aux champs, méthodes combinées pour combiner ou convertir des descripteurs de méthode existants pour de nouveaux descripteurs de méthode. , et méthodes d'usine pour créer des descripteurs de méthode qui simulent d'autres opérations JVM courantes ou des modèles de flux de contrôle. Dans Java 9, la classe MethodHandles a été améliorée, de nombreux changements ont été introduits et de nouvelles méthodes statiques ont été ajoutées comme arrayLength(), arrayConstructor(), zero(), etc. La traduction chinoise de
<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>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!