Java
 Computer >> コンピューター >  >> プログラミング >> Java

Java 9の変数ハンドルとは何ですか?


可変ハンドル 変数または一連の変数への参照です 、静的フィールドの他のコンポーネントを含む 、非静的フィールド および外側の配列要素 ヒープデータ構造内。これは、可変ハンドルを意味します 既存のメソッドハンドルに似ています 。 java.lang.invoke.VarHandleを使用して表すことができます クラス。 java.lang.invoke.MethodHandles.Lookupを使用できます 変数ハンドルを作成するための静的ファクトリメソッド オブジェクト。 配列内の単一の要素にアクセスするためにも使用できます 、およびバイト[] 配列。

構文

public abstract class VarHandle extends Object

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

public class VarHandleTest {
   public static void main(String args[]) {
      VarHandle varHandle = MethodHandles.arrayElementVarHandle(int[].class);
      int[] array = new int[5];

      printArray(array);
      varHandle.set(array, 2, 5);
      printArray(array);

      System.out.println(varHandle.get(array, 2));
   }
   private static void printArray(int[] array) {
      System.out.println(Arrays.toString(array));
   }
}

出力

[0, 0, 0, 0, 0]
[0, 0, 5, 0, 0]
5

  1. JavaのStringIndexOutOfBoundsExceptionとは何ですか?

    文字列は、Javaで文字のシーケンスを格納するために使用され、オブジェクトとして扱われます。 java.langパッケージのStringクラスは、文字列を表します。 文字列は、(他のオブジェクトのように)新しいキーワードを使用するか、(他のプリミティブデータ型のように)リテラルに値を割り当てることによって作成できます。 String stringObject = new String("Hello how are you"); String stringLiteral = "Welcome to Tutorialspoint"; 文字列には文字の配列

  2. JavaのArrayIndexOutOfBoundsExceptionとは何ですか?

    配列はデータ構造/コンテナ/オブジェクトです 同じタイプの要素の固定サイズの順次コレクションを格納します。配列のサイズ/長さは作成時に決定されます。 配列内の要素の位置は、インデックスまたは添え字と呼ばれます。配列の最初の要素はインデックス0に格納され、2番目の要素はインデックス1に格納されます。 配列内の各要素には、配列の名前とそれに続く角かっこで囲まれた必要な要素のインデックスを含む式を使用してアクセスします。 System.out.println(myArray[3]); //prints 1457 一般に、配列は固定サイズであり、各要素はインデックスを使用してアクセスされま