Flutter 您是否应该检查fromJson函数中变量的runTimeType作为最佳实践?
这是一个相当基本的问题,但想知道什么是最佳实践,似乎在某处或其他地方找不到任何关于这一点的参考 在解析fromJson时,在尝试存储属性之前是否应该检查属性的runTimeType,即使您确信它应该是您认为的类型,或者null?或者,如果这种极不可能发生的事件曾经发生过,我们会接受错误吗 谢谢Flutter 您是否应该检查fromJson函数中变量的runTimeType作为最佳实践?,flutter,Flutter,这是一个相当基本的问题,但想知道什么是最佳实践,似乎在某处或其他地方找不到任何关于这一点的参考 在解析fromJson时,在尝试存储属性之前是否应该检查属性的runTimeType,即使您确信它应该是您认为的类型,或者null?或者,如果这种极不可能发生的事件曾经发生过,我们会接受错误吗 谢谢 factory SomeClass.fromJson(Map data) { if (data == null) return null; String someString = data['s
factory SomeClass.fromJson(Map data) {
if (data == null) return null;
String someString = data['someString']; //no runTimeType check
int someInt = data['someInt']; //no runTimeType check
try {
assert(someString != null, 'Some String was null in Some Class Json');
assert(someInt != null,
'Some Int null in Some Class Json');
} catch (e) {
return null;
}
return SomeClass(someString: someString, someInt: someInt);
}
检查变量的运行时类型也很好,因为它可以防止将来数据库更新时任何潜在的应用程序崩溃 就
null
检查而言,我个人传入了一个默认值,如String
我将空字符串存储为默认值,而不是null
String someString = data['someString'] ?? '';
即使数据库返回一个null
值,我们的应用程序也应该能够处理这些情况
我个人经历过的最常见的错误类型是在数据解析过程中。类型String
不是int
的子类型。差不多吧。因此,我想最好检查从后端返回的值的运行时类型。那么将if(data['someString'].runTimeType==String){unwrap here}添加到每个属性中?