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

相关推荐
安卓开发者18 小时前
鸿蒙NEXT跨设备通信:掌握URPC,实现远程程序调用
华为·harmonyos
程序员潘Sir19 小时前
鸿蒙应用开发从入门到实战(十七):ArkUI组件List&列表布局
harmonyos·鸿蒙
bst@微胖子21 小时前
鸿蒙实现滴滴出行项目之侧边抽屉栏以及权限以及搜索定位功能
android·华为·harmonyos
爱笑的眼睛111 天前
深入浅出 HarmonyOS 应用开发:ArkTS 语法精要与实践
华为·harmonyos
爱笑的眼睛112 天前
HarmonyOS应用开发深度解析:ArkTS语法精要与UI组件实践
华为·harmonyos
Kisang.2 天前
【HarmonyOS】消息通知
华为·harmonyos
安卓开发者2 天前
鸿蒙NEXT网络通信实战:使用HTTP协议进行网络请求
网络·http·harmonyos
爱笑的眼睛112 天前
HarmonyOS ArkTS深度解析:构建高性能声明式UI应用
华为·harmonyos
TiZizzz2 天前
HarmonyOS应用开发 - strip编译配置优先级
华为·harmonyos