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

相关推荐
枫叶丹413 分钟前
【HarmonyOS 6.0】ArkWeb嵌套滚动快速调度策略
开发语言·华为·harmonyos
见山是山-见水是水27 分钟前
鸿蒙flutter第三方库适配 - 多语言应用
flutter·华为·harmonyos
麒麟ZHAO30 分钟前
Flutter 框架跨平台鸿蒙开发 - 匿名真心话
flutter·华为·harmonyos
麒麟ZHAO40 分钟前
鸿蒙flutter第三方库适配 - 新闻阅读应用
flutter·华为·harmonyos
枫叶丹41 小时前
【HarmonyOS 6.0】ArkWeb 手势获焦模式详解:告别点击获焦,迎接长按触发
开发语言·华为·harmonyos
麒麟ZHAO1 小时前
鸿蒙flutter第三方库适配 - 服务端驱动UI应用
flutter·ui·华为·harmonyos
见山是山-见水是水1 小时前
鸿蒙flutter第三方库适配 - 收藏管理应用
flutter·华为·harmonyos
麒麟ZHAO1 小时前
鸿蒙flutter第三方库适配 - 路由导航应用
flutter·华为·harmonyos
2401_839633911 小时前
鸿蒙flutter第三方库适配 - 时间线应用
flutter·华为·harmonyos
见山是山-见水是水1 小时前
鸿蒙flutter第三方库适配 - 在线文档阅读器
flutter·华为·harmonyos