我需要在 dart 中进行向下转换。例如可以从Object to 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}');
}
这段代码的结果是:
Im 42
未捕获的错误:TypeError:“Person”的实例:“Person”类型不是“CoolPerson”类型的子类型
最好只创建一个CoolPerson
从头开始。否则无法投出person as CoolPerson;
。解决方法是创建一个CoolPerson
from person
.
Person person = Person('Peter', 30);
CoolPerson coolPerson = CoolPerson(person.name, person.age);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)