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

相关推荐
敲代码的鱼哇3 小时前
跳转原生系统设置插件 支持安卓/iOS/鸿蒙UTS组件
android·ios·harmonyos
在下历飞雨3 小时前
Kuikly基础之状态管理与数据绑定:让“孤寡”计数器动起来
ios·harmonyos
在下历飞雨3 小时前
Kuikly基础之Kuikly DSL基础组件实战:构建青蛙主界面
ios·harmonyos
HarmonyOS小助手5 小时前
HEIF:更高质量、更小体积,开启 HarmonyOS 图像新体验
harmonyos·鸿蒙·鸿蒙生态
self_myth6 小时前
[特殊字符] 深入理解操作系统核心特性:从并发到分布式,从单核到多核的全面解析
windows·macos·wpf·harmonyos
安卓开发者15 小时前
鸿蒙NEXT主题设置指南:应用级与页面级主题定制详解
华为·harmonyos
深盾科技21 小时前
鸿蒙ABC开发中的名称混淆与反射处理策略:安全与效率的平衡
安全·华为·harmonyos
2501_919749031 天前
鸿蒙:获取UIContext实例的方法
华为·harmonyos
王佳斌1 天前
tp报错解决
harmonyos
coooliang1 天前
【鸿蒙 NEXT】V1迁移V2状态管理
java·前端·harmonyos