クラス java.lang.invoke.VarHandleの
使用
パッケージ | 説明 |
---|---|
java.lang.invoke |
java.lang.invoke パッケージは、Java Virtual Machineとやりとりするための低レベルのプリミティブを提供します。 |
jdk.incubator.foreign |
下位レベルの安全かつ効率的なメモリー・アクセスをサポートするクラスです。
|
-
java.lang.invokeでのVarHandleの使用
VarHandleを返すjava.lang.invokeのメソッド 修飾子と型 メソッド 説明 static VarHandle
MethodHandles. arrayElementVarHandle(Class<?> arrayClass)
型arrayClass
の配列の要素にアクセスするVarHandleを生成します。static VarHandle
ConstantBootstraps. arrayVarHandle(MethodHandles.Lookup lookup, String name, Class<VarHandle> type, Class<?> arrayClass)
配列型にVarHandle
を検索します。static VarHandle
MethodHandles. byteArrayViewVarHandle(Class<?> viewArrayClass, ByteOrder byteOrder)
byte[]
配列の要素にアクセスするVarHandleを生成し、int[]
やlong[]
などの異なるプリミティブ配列型であるかのように見せます。static VarHandle
MethodHandles. byteBufferViewVarHandle(Class<?> viewArrayClass, ByteOrder byteOrder)
int[]
またはlong[]
など、byte
の要素にアクセスするVarHandleを生成します。これは、ByteBuffer
の要素と異なるプリミティブ・コンポーネント型の要素の配列であるかのように見えます。static VarHandle
ConstantBootstraps. fieldVarHandle(MethodHandles.Lookup lookup, String name, Class<VarHandle> type, Class<?> declaringClass, Class<?> fieldType)
インスタンス・フィールドのVarHandle
を検索します。VarHandle
MethodHandles.Lookup. findStaticVarHandle(Class<?> decl, String name, Class<?> type)
型decl
のクラスで宣言された型type
の静的フィールドname
へのアクセスを提供するVarHandleを生成します。VarHandle
MethodHandles.Lookup. findVarHandle(Class<?> recv, String name, Class<?> type)
型recv
のクラスで宣言された型type
の非静的フィールドname
へのアクセスを提供するVarHandleを生成します。VarHandle
VarHandle.VarHandleDesc. resolveConstantDesc(MethodHandles.Lookup lookup)
static VarHandle
ConstantBootstraps. staticFieldVarHandle(MethodHandles.Lookup lookup, String name, Class<VarHandle> type, Class<?> declaringClass, Class<?> fieldType)
静的フィールドのVarHandle
を検索します。VarHandle
MethodHandles.Lookup. unreflectVarHandle(Field f)
クラスR
で宣言されたT
型の反映されたフィールドf
へのアクセスを提供するVarHandleを生成します。型VarHandleの型引数を持つjava.lang.invokeのメソッド・パラメータ 修飾子と型 メソッド 説明 static VarHandle
ConstantBootstraps. arrayVarHandle(MethodHandles.Lookup lookup, String name, Class<VarHandle> type, Class<?> arrayClass)
配列型にVarHandle
を検索します。static VarHandle
ConstantBootstraps. fieldVarHandle(MethodHandles.Lookup lookup, String name, Class<VarHandle> type, Class<?> declaringClass, Class<?> fieldType)
インスタンス・フィールドのVarHandle
を検索します。static VarHandle
ConstantBootstraps. staticFieldVarHandle(MethodHandles.Lookup lookup, String name, Class<VarHandle> type, Class<?> declaringClass, Class<?> fieldType)
静的フィールドのVarHandle
を検索します。 -
jdk.incubator.foreignでのVarHandleの使用
VarHandleを返すjdk.incubator.foreignのメソッド 修飾子と型 メソッド 説明 static VarHandle
MemoryHandles. asAddressVarHandle(VarHandle target)
既存のvarハンドルを、キャリア・タイプがMemoryAddress
の新しいvarハンドルに適応させます。static VarHandle
MemoryHandles. asUnsigned(VarHandle target, Class<?> adaptedType)
受信値を絞り込み、指定された型との間で送信値を広げることで、ターゲット変数ハンドルを適応させます。static VarHandle
MemoryHandles. collectCoordinates(VarHandle target, int pos, MethodHandle filter)
フィルタ(メソッド・ハンドル)を使用して座標値のサブ・シーケンスを前処理することで、ターゲット変数ハンドルを適応させます。static VarHandle
MemoryHandles. dropCoordinates(VarHandle target, int pos, Class<?>... valueTypes)
ターゲットのvarハンドルに委譲する前にダミー座標を破棄するvarハンドルを返します。static VarHandle
MemoryHandles. filterCoordinates(VarHandle target, int pos, MethodHandle... filters)
単項フィルタ関数を使用して着信座標値を前処理することで、ターゲット変数ハンドルを適応させます。static VarHandle
MemoryHandles. filterValue(VarHandle target, MethodHandle filterToTarget, MethodHandle filterFromTarget)
フィルタ関数のペアを使用して受信値と送信値を事前処理することで、ターゲット変数ハンドルを適応させます。static VarHandle
MemoryHandles. insertCoordinates(VarHandle target, int pos, Object... values)
Varハンドル呼出しの前に、1つ以上の「バインド座標」を持つターゲットvarハンドルを提供します。static VarHandle
MemoryHandles. permuteCoordinates(VarHandle target, List<Class<?>> newCoordinates, int... reorder)
新しい座標が指定された座標と一致するように再配列することで、ターゲットのvarハンドルの座標値を適応させるvarハンドルを提供します。static VarHandle
MemoryHandles. varHandle(Class<?> carrier, long alignmentBytes, ByteOrder byteOrder)
指定されたキャリア・タイプ、位置合せ制約、およびバイト順序でメモリー・アクセス・メトリックを作成します。static VarHandle
MemoryHandles. varHandle(Class<?> carrier, ByteOrder byteOrder)
指定されたキャリア・タイプとバイト順序でメモリー・アクセス・メトリックを作成します。default VarHandle
MemoryLayout. varHandle(Class<?> carrier, MemoryLayout.PathElement... elements)
特定のレイアウト・パスで選択されたレイアウトでメモリーを参照解除するために使用できるメモリー・アクセス変数ハンドルを作成します。この場合、パスはこのレイアウトのルートとみなされます。static VarHandle
MemoryHandles. withOffset(VarHandle target, long bytesOffset)
fixedオフセットを受信MemoryAddress
座標に追加し、その値をターゲットvarハンドルに伝播するvarハンドルを返します。static VarHandle
MemoryHandles. withStride(VarHandle target, long bytesStride)
受信するMemoryAddress
アクセス座標値にvariableオフセットを追加し、その値をターゲットのvarハンドルに伝播するvarハンドルを返します。型VarHandleのパラメータを持つjdk.incubator.foreignのメソッド 修飾子と型 メソッド 説明 static VarHandle
MemoryHandles. asAddressVarHandle(VarHandle target)
既存のvarハンドルを、キャリア・タイプがMemoryAddress
の新しいvarハンドルに適応させます。static VarHandle
MemoryHandles. asUnsigned(VarHandle target, Class<?> adaptedType)
受信値を絞り込み、指定された型との間で送信値を広げることで、ターゲット変数ハンドルを適応させます。static VarHandle
MemoryHandles. collectCoordinates(VarHandle target, int pos, MethodHandle filter)
フィルタ(メソッド・ハンドル)を使用して座標値のサブ・シーケンスを前処理することで、ターゲット変数ハンドルを適応させます。static VarHandle
MemoryHandles. dropCoordinates(VarHandle target, int pos, Class<?>... valueTypes)
ターゲットのvarハンドルに委譲する前にダミー座標を破棄するvarハンドルを返します。static VarHandle
MemoryHandles. filterCoordinates(VarHandle target, int pos, MethodHandle... filters)
単項フィルタ関数を使用して着信座標値を前処理することで、ターゲット変数ハンドルを適応させます。static VarHandle
MemoryHandles. filterValue(VarHandle target, MethodHandle filterToTarget, MethodHandle filterFromTarget)
フィルタ関数のペアを使用して受信値と送信値を事前処理することで、ターゲット変数ハンドルを適応させます。static VarHandle
MemoryHandles. insertCoordinates(VarHandle target, int pos, Object... values)
Varハンドル呼出しの前に、1つ以上の「バインド座標」を持つターゲットvarハンドルを提供します。static VarHandle
MemoryHandles. permuteCoordinates(VarHandle target, List<Class<?>> newCoordinates, int... reorder)
新しい座標が指定された座標と一致するように再配列することで、ターゲットのvarハンドルの座標値を適応させるvarハンドルを提供します。static VarHandle
MemoryHandles. withOffset(VarHandle target, long bytesOffset)
fixedオフセットを受信MemoryAddress
座標に追加し、その値をターゲットvarハンドルに伝播するvarハンドルを返します。static VarHandle
MemoryHandles. withStride(VarHandle target, long bytesStride)
受信するMemoryAddress
アクセス座標値にvariableオフセットを追加し、その値をターゲットのvarハンドルに伝播するvarハンドルを返します。