java.lang.Object
com.jmc.lang.ref.Pointer<T>
- 类型参数:
T
- 指针储存类型
指针
- 从以下版本开始:
- 1.7
- API Note:
public void test() { // 声明一个指针,并绑定一个初始值 var p = Pointer.of(1); // 获取指针内的值(1) var value = p.get(); // 获取指针值的类型(class java.lang.Integer) var type = p.type(); // 重新设置指针里的值为666 p.reset(666); // 将指针传入方法中,执行完值为667 changeValue(p); // 直接打印指针(Pointer { java.lang.Integer@29b }) // 打印的是指针的“地址”(hashcode) System.out.println(p); } // 传入一个指针并改变值 void changeValue(Pointer<Integer> p) { // 使指针指向的值 + 1 p.update(t -> ++t); }
-
方法详细资料
-
of
获得一个指针- 类型参数:
T
- 初始值类型- 参数:
initValue
- 指向的初始值- 返回:
- 指针
- API Note:
// 创建一个指针,指定初始值为3 var ptr = Pointer.of(3);
-
empty
获得一个具有类型的空指针- 类型参数:
T
- 初始值类型- 返回:
- 具有类型的空指针
- 从以下版本开始:
- 2.3
- API Note:
// 创建一个空指针,类型为Integer var intPtr = Pointer.<Integer>empty();
-
get
获取指针指向的值- 返回:
- 指向的值
- API Note:
// 定义指针 var ptr = Pointer.of(3); // 获取指针指向的值(3) var value = ptr.get();
-
update
更新指针指向的值- 参数:
updateFunc
- 更新函数- API Note:
// 定义指针 var ptr = Pointer.of(3); // 更新指针指向的值,将其+1 ptr.update(i -> i + 1);
-
reset
让指针指向一个新值- 参数:
newValue
- 新值- 返回:
- 旧值
- API Note:
// 定义指针 var ptr = Pointer.of(3); // 使指针指向一个新的值:4 ptr.reset(4);
-
resetUnchecked
让指针指向一个新值(无类型检查)- 参数:
newValue
- 新值- 返回:
- 旧值
- API Note:
// 定义指针 var ptr = Pointer.of(3); // 使指针指向一个新的值并不加类型检查 ptr.resetUnchecked(4);
-
type
获取指针指向的值的类型- 返回:
- 值的类型
- API Note:
// 定义指针 var ptr = Pointer.of(3); // 获取指针指向值类型(class java.lang.Integer) var classType = ptr.getType();
-
toString
打印指针类型和指向的地址
-