Maison > Java > javaDidacticiel > le corps du texte

Quelle est l'importance de la classe MethodHandles dans Java 9 ?

WBOY
Libérer: 2023-08-25 17:21:09
avant
1131 Les gens l'ont consulté

La classe

在Java 9中,MethodHandles类的重要性是什么?

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

Grammar

<strong>public class MethodHandles extends Object</strong>
Copier après la connexion

Example

est :

Example

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();
   }
}
Copier après la connexion

Output

<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>
Copier après la connexion

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!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal