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**类型的实例,以确保我不会调用一个不存在的方法或访问一个不存在的属性。

相关推荐
狼哥16866 小时前
《新闻资讯》四、视频模块实现指南
ui·华为·音视频·harmonyos
风华圆舞6 小时前
鸿蒙 + Flutter 下如何让 HarmonyOS 能力真正服务于 AI 体验
人工智能·flutter·harmonyos
Swift社区6 小时前
鸿蒙游戏为什么掉帧?60FPS性能优化实战指南
游戏·性能优化·harmonyos
lqj_本人6 小时前
AnotherRedisDesktopManager鸿蒙适配全记录
华为·harmonyos
YM52e6 小时前
鸿蒙PC ArkTS 异常处理深度解析与最佳实践
学习·华为·harmonyos
xcLeigh7 小时前
鸿蒙PC平台 Shotwell 照片管理器适配实战:从 Linux GNOME 到 鸿蒙PC 的 Electron 迁移
linux·electron·harmonyos·鸿蒙·shotwell·照片管理器
yuegu7777 小时前
HarmonyOS应用<节气通>开发第28篇:工具类封装
harmonyos
伶俜667 小时前
鸿蒙原生应用实战(七)ArkUI 文件管理器:目录浏览 + 文件操作 + 搜索筛选
学习·华为·harmonyos
大雷神7 小时前
第96篇 | HarmonyOS 异常合集:权限拒绝、网络失败、模型失败、相机失败
harmonyos
Swift社区7 小时前
AI Native 鸿蒙 App:从页面驱动到智能驱动的架构革命
人工智能·架构·harmonyos