我想使用 Project Panama 的外部内存访问 API 在本机内存中实现数据结构。
为了做到这一点,我需要一个底层对象数组 ( Object[]
) 用于条目。
在外部内存访问 API 的所有示例中,MemorySegments 仅用于存储和检索原语,如下所示:
//I would like to use Object here instead of int
ResourceScope scope = ResourceScope.newConfinedScope();
SequenceLayout layout = MemoryLayout.sequenceLayout(100, MemoryLayouts.JAVA_INT);
VarHandle intHandle = seq.varHandle(int.class, sequenceElement());
MemorySegment segment = MemorySegment.allocateNative(layout, scope);
有没有办法将非基元存储在 MemorySegment(例如对象)中?如果是这种情况,当 VarHandles 仅支持原始载体时,如何使用 VarHandle 取消引用该 MemorySegment?