首页 > 解决方案 > 您是否应该检查 fromJson 函数中变量的 runTimeType 作为最佳实践?

问题描述

非常基本的问题,但想知道最佳实践是什么,并且似乎无法在 SO 或其他地方找到对此的任何引用。

当您解析 fromJson 时,是否应该在尝试存储属性之前检查属性的 runTimeType,即使您确信它不应该是您认为的类型或 null?或者,如果这种极不可能发生的事件发生,我们是否只是接受错误?

谢谢 !

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); 

}

标签: flutter

解决方案


检查变量的运行时类型也非常好,因为它可以防止将来更新数据库时任何潜在的应用程序崩溃。

null检查而言,我个人传递了一个默认值,例如String我将一个空字符串存储为默认值,而不是null.

String someString = data['someString'] ?? '';

即使数据库返回一个null值,我们的应用程序也应该能够处理这些条件。

我个人遇到的最常见的错误类型是在解析数据期间。类型String不是 的子类型int。类似的东西。所以,我想检查从后端返回的值的运行时类型会很好。


推荐阅读