HarmonyOS鸿蒙Next中如何实现打印变量的内存地址

HarmonyOS鸿蒙Next中如何实现打印变量的内存地址 如何实现打印变量的内存地址,想判断两个对象是否是同一个

4 回复

直接=== 引用类型会比较内存地址

更多关于HarmonyOS鸿蒙Next中如何实现打印变量的内存地址的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


内存地址打印不到,楼主打断点的话可以看到。

如果要比较的话可以用 === 全等于比较是否是同一个

const a: Record<string,string> = { "a": '111'};
let b = a;
console.log(String(b===a));

在HarmonyOS鸿蒙Next中,可通过console.logLog.info输出变量引用标识。使用JSON.stringify序列化对象时,系统生成的内部引用可作为近似内存地址的标识。鸿蒙应用开发中不直接暴露内存地址,但可通过ReflectObject方法获取对象唯一标识符来间接追踪。具体代码示例:console.log(JSON.stringify(obj))输出包含系统引用信息。

在HarmonyOS Next中,可以通过Object.hashCode()方法获取对象的哈希码,该值通常与内存地址相关,可用于判断两个对象是否为同一实例。示例代码:

Object obj1 = new Object();
Object obj2 = obj1;

System.out.println("obj1 address: " + System.identityHashCode(obj1));
System.out.println("obj2 address: " + System.identityHashCode(obj2));

// 比较是否为同一对象
if (obj1 == obj2) {
    System.out.println("Same object");
}

注意:identityHashCode提供唯一的对象标识,但并非直接内存地址(由于安全性和GC等因素),不过足以用于对象同一性判断。

回到顶部