【问题标题】:Prevent class properties to be null when instantiating a Dart class实例化 Dart 类时防止类属性为空
【发布时间】:2020-04-12 13:51:45
【问题描述】:

假设我有这个 Dart 类:

class Stock {
  int id;
  String externalCode;
  String internalCode;
  String name;
  double quantity;
}

当我创建这个对象的新实例时,例如Stock item = new Stock();,所有属性都是null

我知道这是 Dart 特有的行为,但在将此类对象发送到 API 时,由于大多数后端语言(如 C#、Java 等)没有可为空的原语,因此在解析到相应的模型类时会发生异常。

在实例化 Dart 类时,防止 intdoublebool 属性成为 null(分别设置为 00.0false)的最简单方法是什么?

由于许多类可能有很多属性,所以像 Stock item = new Stock(id: 0, quantity: 0 /*...and so on... */); 这样的硬连线实例是不可能的。

非常感谢!

【问题讨论】:

    标签: dart


    【解决方案1】:

    如果您想要一个类中的成员的默认值,您只需将每个成员分配给类定义中的一个值:

    class Stock {
      int id = 0;
      String externalCode = "";
      String internalCode = "";
      String name = "";
      double quantity = 0.0;
    }
    

    或者,您还可以为可选参数提供默认值,例如:

    class Stock {
      int id;
      String externalCode;
      String internalCode;
      String name;
      double quantity;
    
      Stock(
          {this.id = 0,
          this.externalCode = '',
          this.internalCode = '',
          this.name = '',
          this.quantity = 0.0});
    }
    

    【讨论】:

      猜你喜欢
      • 2015-06-09
      • 2021-05-11
      • 1970-01-01
      • 2017-10-30
      • 1970-01-01
      • 1970-01-01
      • 2015-04-02
      • 1970-01-01
      • 2011-12-20
      相关资源
      最近更新 更多