Maison  >  Article  >  Java  >  Comment créer une instance de VarHandle dans Java 9 ?

Comment créer une instance de VarHandle dans Java 9 ?

王林
王林avant
2023-09-17 21:53:081148parcourir

在Java 9中,我们如何创建VarHandle的实例?

De manière générale, un poignée de variable est simplement une référence tapée à une variable. Ce sera un élément array, une instance ou un staticfield d'une classe. La classe VarHandle peut fournir un accès en écriture et en lecture aux variables dans des conditions spécifiques. Ils sont immuables et n’ont aucune condition visible. De plus, ils ne peuvent pas être subdivisés, chaque VarHandle a un type générique T, qui est le type de chaque variable représentée par ce VarHandle. Le but de VarHandle est de définir un standard pour appeler les équivalents des opérations java.util.concurrent.atomic et sun.misc.Unsafe sur les champs et les éléments de tableau.

Dans l'exemple ci-dessous, nous pouvons créer une instance VarHandle en utilisant la méthode MethodHandle.lookup().

Exemple

import java.lang.invoke.VarHandle;
import java.lang.invoke.MethodHandles;

public class VarHandleInstanceTest {
   public static void main(String args[]) {
      try {
         <strong>VarHandle </strong>fieldHandle = <strong>MethodHandles.lookup().in</strong>(Student.class).<strong>findVarHandle</strong>(Student.class, "<strong>studentId</strong>", int.class);
         System.out.println("VarHandle instance created successfully!!!");
      } catch (NoSuchFieldException | IllegalAccessException e) {
         e.printStackTrace();
      }
   }
}

<strong>// Stundent class</strong>
class Student {
   protected int studentId;
   private String[] marks;
   public Student() {
      studentId = 0 ;
      marks = new String[] {"75" , "85" , "95"} ;
   }
}

Sortie

<strong>VarHandle instance created successfully!!!</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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer