- 封装接口:
-
MemoryLayout预览
public static sealed interface MemoryLayout.PathElement
PathElement
是Java平台的预览API。
预览功能可能在将来的版本中被移除,或升级为Java平台的永久功能。
布局路径中的一个元素。路径元素有三种类型:
- 组路径元素,用于在
GroupLayout
预览中通过名称或索引选择成员布局; - 序列路径元素,用于在
SequenceLayout
预览中选择一个或多个序列元素布局;以及 - 解引用路径元素,用于将地址布局解引用为其目标布局。
- 实现要求:
- 此接口的实现是不可变的、线程安全的,并且是基于值的。
- 自版本:
- 19
-
Method Summary
Modifier and TypeMethodDescriptiongroupElement
(long index) 返回一个选择组布局中给定索引的成员布局的路径元素。groupElement
(String name) 返回一个选择组布局中给定名称的成员布局的路径元素。返回一个开放路径元素,用于选择序列布局中的未指定元素布局。sequenceElement
(long index) 返回一个选择序列布局中指定位置的元素布局的路径元素。sequenceElement
(long start, long step) 返回一个开放路径元素,用于选择序列布局中一系列位置的元素布局。
-
Method Details
-
groupElement
返回一个选择组布局中给定名称的成员布局的路径元素。- 实现要求:
-
如果存在多个具有匹配名称的组元素,则此方法返回的路径元素将选择第一个;也就是说,将选择当前路径中偏移量最低的组元素。在这种情况下,可能更倾向于使用
groupElement(long)
。 - 参数:
-
name
- 要选择的成员布局的名称。 - 返回:
- 选择具有给定名称的组成员布局的路径元素。
-
groupElement
返回一个选择组布局中给定索引的成员布局的路径元素。- 参数:
-
index
- 要选择的成员布局元素的索引。 - 返回:
- 选择具有给定索引的组成员布局的路径元素。
- 抛出:
-
IllegalArgumentException
- 如果index < 0
。
-
sequenceElement
返回一个选择序列布局中指定位置的元素布局的路径元素。- 参数:
-
index
- 要选择的序列元素的索引。 - 返回:
- 选择具有给定索引的序列元素布局的路径元素。
- 抛出:
-
IllegalArgumentException
- 如果index < 0
。
-
sequenceElement
返回一个开放路径元素,用于选择序列布局中一系列位置的元素布局。范围由起始索引(包括)S
和步长因子(也可以为负数)F
表示。此布局选择的确切序列元素表示为索引
I
。如果C
是序列元素计数,则遵循0 <= I < B
,其中B
计算如下:- 如果
F > 0
,则B = ceilDiv(C - S, F)
- 如果
F < 0
,则B = ceilDiv(-(S + 1), -F)
- 参数:
-
start
- 要选择的第一个序列元素的索引。 -
step
- 要选择子序列序列元素的步长因子。 - 返回:
- 选择具有给定索引的序列元素布局的路径元素。
- 抛出:
-
IllegalArgumentException
- 如果start < 0
,或step == 0
。
- 如果
-
sequenceElement
返回一个开放路径元素,用于选择序列布局中的未指定元素布局。此布局选择的确切序列元素表示为索引
I
。如果C
是序列元素计数,则遵循0 <= I < C
。- 返回:
- 选择未指定序列元素布局的路径元素。
-
dereferenceElement
- 返回:
- 选择将地址布局解引用的路径元素。
-
PathElement
。