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

相关推荐
OH_TPC2 小时前
@ohos/aki 源码解读(一):一行绑定背后,宏、模板与索引分发
harmonyos
贾伟康2 小时前
【解压时刻|13】HarmonyOS ArkTS 启动链路审计:从 EntryAbility、AppStore 到 Navigation 首屏
harmonyos·arkts·appstorage·应用启动·entryability
贾伟康3 小时前
【古诗词闯关|12】HarmonyOS ArkTS 单页组件拆分实战:降低题库、闯关与结果弹层耦合
harmonyos·arkts·状态管理·arkui·组件化
威哥爱编程5 小时前
模拟面试智能体开发实战 07:答完一题就点评一题,结构化输出给分建议,让每道题都变成复盘
python·agent·harmonyos
威哥爱编程5 小时前
模拟面试智能体开发实战 08:总评报告先过三道闸,防泄题防夸大防错建议,才敢发到候选人手上
python·agent·harmonyos
熊猫钓鱼>_>1 天前
普通用户视角的端侧智能体验手记【鸿蒙心迹】
开发语言·人工智能·华为·智能手机·性能优化·ai编程·harmonyos
KevinChaos1 天前
阳台小花园开发手记 05|HarmonyOS 7.0 互动卡片:动效进出衔接
华为·harmonyos
WHMONY1 天前
大一独立开发鸿蒙原生 AI Agent:聊聊我为什么死磕端侧模型与“技术平权”
harmonyos
todoitbo1 天前
把 K-Lite「什么都能播」搬上鸿蒙 PC:影匣播放器的 FFmpeg + libass 原生移植实录
华为·ffmpeg·harmonyos·鸿蒙
威哥爱编程1 天前
模拟面试智能体开发实战 05:给面试官接上题库和检索,题目结构化、大纲可溯源,AI 不再凭印象出题
python·agent·harmonyos