我需要在Dart中进行向下转型。例如,从Object到int是可能的,但我无法使用自己的类来实现它。我做错了什么吗?或者正确的方式是什么?
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'的子类型。