dart - 实例化Dart类时,防止类属性为null

标签 dart

假设我有这个Dart类(class):

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... */);这样的硬连接实例化就不可能了。

非常感谢!

最佳答案

如果要为类中的成员提供默认值,则可以在类定义中为每个成员分配一个值:

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

关于dart - 实例化Dart类时,防止类属性为null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61172500/

相关文章:

dart - 如何使用 Dart 的 LevelDB?

flutter - 带有 Google 登录帐户的 Google API

json - 如何使用DART在JSON数据中打印部分值

web - Dart 红石网络应用程序

android - 如何在 Flutter 应用中添加桌面版网站?

dart - 如何更改大纲按钮大小?

datatable - 如何在 Flutter 中监听 DataTable 中的 DataRow

firebase - 在flutter中从cloud_firestore中删除文档

dart - 如何使抖动小部件适应不同的屏幕尺寸

Dart/flutter : application crashes on startup