変数ハンドル は、静的フィールド、非静的フィールド、および静的フィールドを含む変数または 変数セットへの参照です。ヒープ データ構造 外部 配列要素 内の。これは、変数ハンドルが既存のメソッドハンドルと類似していることを意味します。 java.lang.invoke.VarHandle クラスを使用してそれを表すことができます。 java.lang.invoke.MethodHandles.Lookup静的ファクトリ メソッドを使用して、変数ハンドル オブジェクトを作成できます。また、 配列 や byte[] 配列内の個々の要素にアクセスするために使用することもできます。
文法<strong>public abstract class VarHandle extends Object</strong>
import java.lang.invoke.MethodHandles; import java.lang.invoke.VarHandle; import java.util.Arrays; public class VarHandleTest { public static void main(String args[]) { <strong>VarHandle </strong>varHandle = <strong>MethodHandles.arrayElementVarHandl</strong>e(<strong>int[].class</strong>); int[] array = new int[5]; printArray(array); varHandle.<strong>set</strong>(array, 2, 5); printArray(array); System.out.println(varHandle.<strong>get</strong>(array, 2)); } private static void printArray(int[] array) { System.out.println(Arrays.toString(array)); } }
<strong>[0, 0, 0, 0, 0] [0, 0, 5, 0, 0] 5</strong>
以上がJava 9の変数ハンドルとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。