问题:
i)在检查Dart中的普通Class对象是否具有特定属性时应该怎么做?
ii)解码来自api的JSON响应正文时,如何检查一个对象是否具有特定属性,在DART中?
例如,在Javascript中,有"hasOwnProperty"。
if (obj.hasOwnProperty('property')) {
// do something
}
Object
是否是所需类型:if (obj is ClassWithProperty) {
print(obj.property);
}
var hasProperty = false;
try {
(obj as dynamic).property;
hasProperty = true;
} on NoSuchMethodError {
}
Error
类型是不受欢迎的。object is Map
(它是 object is Map <dynamic,dynamic>
的简写形式)来检查一个对象是否为 Map
。 - jamesdlinruntimeType
而不是对象本身,这导致了错误的结果,像这样:
var obj = {"abc": 123}; if(obj.runtimeType is Map)
谢谢你的帮助。 - Muhammad Qasimis
,因为只有本地变量才会自动进行类型提升。 - jamesdlin