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

相关推荐
搞瓶可乐1 小时前
鸿蒙ArkUI实战之组件;Text组件,Image组件,Button组件,Span组件和TextInput组件的使用场景及使用方法
华为·harmonyos·鸿蒙系统·arkui·组件化开发·基础组件使用
九丘教育2 小时前
【仓颉 + 鸿蒙 + AI Agent】CangjieMagic框架(15):NaiveExecutor
人工智能·华为·harmonyos
搞瓶可乐6 小时前
鸿蒙ArkUI实战之TextArea组件、RichEditor组件、RichText组件、Search组件的使用
华为·harmonyos·arkui·搜索框·富文本组件·富文本输入框·鸿蒙原生api
孤寂码农_defector6 小时前
鸿蒙系统的 “成长烦恼“:生态突围与技术迭代的双重挑战
macos·华为·objective-c·cocoa·harmonyos
别说我什么都不会7 小时前
【仓颉三方库】 数据解析——TOML4CJ
harmonyos
鸿蒙布道师7 小时前
鸿蒙NEXT开发LRUCache缓存工具类(单例模式)(ArkTs)
android·ios·华为·harmonyos·arkts·鸿蒙系统·huawei
城中的雾9 小时前
HarmonyOS Next 编译之如何构建不同包名应用
harmonyos·arkts
别说我什么都不会9 小时前
【仓颉三方库】 数据解析—— jwt4cj
harmonyos
周胡杰10 小时前
鸿蒙-跨设备互通,设备互通提供跨设备的相机、扫描、图库访问能力,平板或2in1设备可以调用手机的相机、扫描、图库等功能。
数码相机·华为·自动化·电脑·harmonyos·鸿蒙·鸿蒙系统
SuperHeroWu710 小时前
【HarmonyOS 5】VisionKit人脸活体检测详解
华为·harmonyos·人脸活体检测·visionkit