类的用途
java.lang.invoke.VarHandle
使用 VarHandle 的包
包
描述
提供对 Java 运行时之外的内存和函数的低级访问。
java.lang.invoke 包提供用于与 Java 虚拟机交互的低级原语。
-
VarHandle 在 java.lang.foreign 中的用法
java.lang.foreign 中返回 VarHandle 的方法修饰符和类型方法描述ValueLayout.arrayElementVarHandle(int... shape) 创建一个 strided var 句柄,可用于访问作为多维数组的内存段。default VarHandleMemoryLayout.varHandle(MemoryLayout.PathElementPREVIEW... elements) 创建一个 var 句柄,该句柄可用于访问给定布局路径选择的布局中的内存段,其中该路径被认为植根于此布局。 -
VarHandle 在 java.lang.invoke 中的用法
java.lang.invoke 中返回 VarHandle 的方法修饰符和类型方法描述static VarHandleMethodHandles.arrayElementVarHandle(Class<?> arrayClass) 生成一个 VarHandle,可以访问类型为arrayClass的数组的元素。static VarHandleConstantBootstraps.arrayVarHandle(MethodHandles.Lookup lookup, String name, Class<VarHandle> type, Class<?> arrayClass) 查找数组类型的VarHandle。static VarHandleMethodHandles.byteArrayViewVarHandle(Class<?> viewArrayClass, ByteOrder byteOrder) 生成一个 VarHandle,可以访问byte[]数组的元素,就像它是不同的原始数组类型一样,例如int[]或long[]。static VarHandleMethodHandles.byteBufferViewVarHandle(Class<?> viewArrayClass, ByteOrder byteOrder) 生成一个 VarHandle,允许访问ByteBuffer的元素,将其视为与byte不同的基本组件类型的元素数组,例如int[]或long[]。static VarHandleMethodHandles.collectCoordinates(VarHandle target, int pos, MethodHandle filter) 预览。通过使用过滤器(方法句柄)预处理其坐标值的子序列来调整目标变量句柄。static VarHandleMethodHandles.dropCoordinates(VarHandle target, int pos, Class<?>... valueTypes) 预览。返回一个 var 句柄,它将在委托给目标 var 句柄之前丢弃一些虚拟坐标。static VarHandleConstantBootstraps.fieldVarHandle(MethodHandles.Lookup lookup, String name, Class<VarHandle> type, Class<?> declaringClass, Class<?> fieldType) 为实例字段查找VarHandle。static VarHandleMethodHandles.filterCoordinates(VarHandle target, int pos, MethodHandle... filters) 预览。通过使用一元过滤函数预处理传入的坐标值来调整目标变量句柄。static VarHandleMethodHandles.filterValue(VarHandle target, MethodHandle filterToTarget, MethodHandle filterFromTarget) 预览。过滤器函数预处理传入和传出值来调整目标 var 句柄。MethodHandles.Lookup.findStaticVarHandle(Class<?> decl, String name, Class<?> type) 生成一个 VarHandle,允许访问类型为decl的类中声明的类型为type的静态字段name。MethodHandles.Lookup.findVarHandle(Class<?> recv, String name, Class<?> type) 生成一个 VarHandle,允许访问类型为recv的类中声明的类型为type的非静态字段name。static VarHandleMethodHandles.insertCoordinates(VarHandle target, int pos, Object... values) 预览。在调用 var 句柄之前,为目标 var 句柄提供一个或多个 bound coordinates。static VarHandleMethodHandles.memorySegmentViewVarHandle(ValueLayoutPREVIEW layout) static VarHandleMethodHandles.permuteCoordinates(VarHandle target, List<Class<?>> newCoordinates, int... reorder) 预览。提供一个 var 句柄,它通过重新排列目标 var 句柄的坐标值来调整它们,以便新坐标与提供的坐标相匹配。static VarHandleConstantBootstraps.staticFieldVarHandle(MethodHandles.Lookup lookup, String name, Class<VarHandle> type, Class<?> declaringClass, Class<?> fieldType) 为静态字段查找VarHandle。MethodHandles.Lookup.unreflectVarHandle(Field f) 生成一个 VarHandle,可以访问类型为R的类中声明的类型为T的反射字段f。abstract VarHandleVarHandle.withInvokeBehavior()返回一个 VarHandle,可以访问与此 VarHandle 相同的变量,但其访问模式方法的调用行为已调整为 invoke behavior 。abstract VarHandleVarHandle.withInvokeExactBehavior()返回一个 VarHandle,可以访问与此 VarHandle 相同的变量,但其访问模式方法的调用行为调整为 invoke-exact behavior 。java.lang.invoke 中的方法,参数类型为 VarHandle修饰符和类型方法描述static VarHandleMethodHandles.collectCoordinates(VarHandle target, int pos, MethodHandle filter) 预览。通过使用过滤器(方法句柄)预处理其坐标值的子序列来调整目标变量句柄。static VarHandleMethodHandles.dropCoordinates(VarHandle target, int pos, Class<?>... valueTypes) 预览。返回一个 var 句柄,它将在委托给目标 var 句柄之前丢弃一些虚拟坐标。static VarHandleMethodHandles.filterCoordinates(VarHandle target, int pos, MethodHandle... filters) 预览。通过使用一元过滤函数预处理传入的坐标值来调整目标变量句柄。static VarHandleMethodHandles.filterValue(VarHandle target, MethodHandle filterToTarget, MethodHandle filterFromTarget) 预览。过滤器函数预处理传入和传出值来调整目标 var 句柄。static VarHandleMethodHandles.insertCoordinates(VarHandle target, int pos, Object... values) 预览。在调用 var 句柄之前,为目标 var 句柄提供一个或多个 bound coordinates。static VarHandleMethodHandles.permuteCoordinates(VarHandle target, List<Class<?>> newCoordinates, int... reorder) 预览。提供一个 var 句柄,它通过重新排列目标 var 句柄的坐标值来调整它们,以便新坐标与提供的坐标相匹配。java.lang.invoke 中的方法参数,类型参数为 VarHandle修饰符和类型方法描述static VarHandleConstantBootstraps.arrayVarHandle(MethodHandles.Lookup lookup, String name, Class<VarHandle> type, Class<?> arrayClass) 查找数组类型的VarHandle。static VarHandleConstantBootstraps.fieldVarHandle(MethodHandles.Lookup lookup, String name, Class<VarHandle> type, Class<?> declaringClass, Class<?> fieldType) 为实例字段查找VarHandle。static VarHandleConstantBootstraps.staticFieldVarHandle(MethodHandles.Lookup lookup, String name, Class<VarHandle> type, Class<?> declaringClass, Class<?> fieldType) 为静态字段查找VarHandle。