微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Dart 向下转型

如何解决Dart 向下转型

我需要在 dart 中做一个低头。例如,从 Objectint 是可能的,但我无法用我自己的类来做到这一点。难道我做错了什么?或者正确的做法是怎样的?

class Person {
  final String name;
  final int age;
  Person(this.name,this.age);
}

class CoolPerson extends Person {
  CoolPerson(String name,int age): super(name,age);

  int someFunction() {
    return name.length * age;
  }
}


main() {

Object x = 42; 
int i = x as int;

print('Im $i');  

Person person = Person('Peter',30);
CoolPerson coolPerson = person as CoolPerson;
  
print('Im ${coolPerson.name}');

}

这段代码的结果是:
我 42 岁
未捕获的错误:TypeError:“Person”的实例:“Person”类型不是“CoolPerson”类型的子类型

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。