ArkTS中,如何将Object类型的对象转换为具体类的对象呢

代码如下:

cpp 复制代码
class Person {
  private age: number;

  constructor(age: number) {
    this.age = age;
  }

  getAge(): number {
    return this.age;
  }
}

let map: Map<string, Object> = new Map();
map.set('person', new Person(18));

let person: Person | undefined = map.get('person') as Person;

if (person instanceof Person) {
  console.log("age: " +person.getAge()); // 输出:18
} else {
  console.error('对象不是Person类型');
}

在这个示例中,我将Map的值类型设置为Object,这样我就可以避免在将对象放入**Map**时进行类型检查。

然后,当我从**Map** 中检索对象时,我使用类型断言as 将其转换为**Person**类型。

最后,我使用**instanceof操作符来检查对象是否真的是Person**类型的实例,以确保我不会调用一个不存在的方法或访问一个不存在的属性。

相关推荐
逻极2 小时前
HarmonyOS 5 鸿蒙多设备适配与分布式开发指南
分布式·华为·harmonyos·鸿蒙
爱笑的眼睛1112 小时前
HarmonyOS Want意图传递机制深度解析
华为·harmonyos
爱笑的眼睛1115 小时前
HarmonyOS语音识别与合成:构建智能语音应用的深度指南
华为·harmonyos
阿里云云原生16 小时前
从“天书”到源码:HarmonyOS NEXT 崩溃堆栈解析实战指南
harmonyos
安卓开发者17 小时前
鸿蒙Next的AVSession Kit:重塑音视频播控的开发体验
华为·音视频·harmonyos
鸿蒙小白龙18 小时前
鸿蒙openharmony操作系统LiteOS-A内核技术全解析:架构、性能与开发实践
华为·架构·harmonyos·鸿蒙·鸿蒙系统·open harmony
2503_9284115621 小时前
10.23 @Observed深层监听
华为·harmonyos·鸿蒙
KongHen21 小时前
UTS编写字符串编解码/加密插件(安卓及鸿蒙端)
前端·harmonyos
做运维的阿瑞1 天前
鸿蒙6.0技术解析:五大行业迎来的智能化革命
人工智能·harmonyos
鸿蒙Jy1 天前
一篇文章带你理解什么是鸿蒙开发中V1&&V2装饰器
harmonyos