📅  最后修改于: 2023-12-03 15:30:22.288000             🧑  作者: Mango
在 Dart 中,可以通过 is
关键字来判断一个对象是否是指定类的实例。
class Person {
String name;
Person(this.name);
}
void main() {
Person person = Person('John');
// 判断 person 是否是 Person 类的实例
bool isPerson = person is Person;
print(isPerson); // true
}
上面的代码中,使用 is
关键字来判断 person
对象是否是 Person
类的实例,结果为 true
。
还可以通过 runtimeType
属性获取对象的运行时类型。
void main() {
Person person = Person('John');
// 获取 person 对象的运行时类型
Type type = person.runtimeType;
print(type); // Person
}
上面的代码中,使用 runtimeType
属性获取 person
对象的运行时类型,并将其输出为字符串 "Person"
。
在 Dart 中,所有的对象都是 Object
类的子类,所以可以使用 is
关键字来判断一个对象是否是 Object
类的实例。
void main() {
Object obj = 'Hello, World!';
// 判断 obj 是否是 Object 类的实例
bool isObject = obj is Object;
print(isObject); // true
}
上面的代码中,使用 is
关键字来判断 obj
对象是否是 Object
类的实例,结果为 true
。
除了使用 is
关键字来判断一个对象是否是类的实例之外,还可以使用 as
关键字来将一个对象转换为指定类的实例。
void main() {
Object obj = Person('John');
// 将 obj 强制转换为 Person 类的实例
Person person = obj as Person;
print(person.name); // John
}
上面的代码中,使用 as
关键字将 obj
对象强制转换为 Person
类的实例,并将其赋值给 person
变量。注意,只有当 obj
对象实际上是 Person
类的实例时,转换才会成功。如果 obj
对象不是 Person
类的实例,转换将会失败并抛出异常。