在 Dart 语言中,如何确定一个对象是否属于某个类?
我正在寻找类似以下的事情:
if (someObject.class.toString() == "Num") {
...
}
什么是返回值类型?它必须是一个字符串吗?
镜像库一直在上下波动,现在似乎正在快速变化,因为我发现的一件事根本没有如图所示。
在 Dart 语言中,如何确定一个对象是否属于某个类?
我正在寻找类似以下的事情:
if (someObject.class.toString() == "Num") {
...
}
什么是返回值类型?它必须是一个字符串吗?
镜像库一直在上下波动,现在似乎正在快速变化,因为我发现的一件事根本没有如图所示。
最近Object
得到了runtimeType
吸气剂。所以现在,我们不仅可以将对象的类型与另一种类型进行比较,还可以实际获取对象的类名。
如:
myObject.runtimeType.toString()
此外,在当前版本的 Dart 中,您可以跳过该toString
操作,直接将runtimeType
对象与目标类型进行比较:
myObject.runtimeType == int
或者
myObject.runtimeType == Animal
通过使用is
andis!
运算符,如下所示:
if (someObject is T)
从文档中:
和运算
is
符is!
对于检查类型很方便。如果实现了 指定的接口,则结果obj is T
为真。例如,总是正确的。obj
T
obj is Object
使用Mirrors API(请参阅此示例):
Expect.equals('T', someObject.simpleName)
这是一个带有解决方案的简单解释。
你有:
Object obj =t1
;
其中t1
是类 T 的对象。
而且您还有其他对象 T 称为t
。
T t = new T()
;
如何检查是否obj
是同一类型的t
?
解决方案:
if(obj is t)
print('obj is typeof t')
else print('obj is not typeof t')