【问题标题】:How to check if a class contains null in Flutter如何在 Flutter 中检查一个类是否包含 null
【发布时间】:2019-11-27 17:26:49
【问题描述】:

我有课

class Job {
  String id;
  String jobTitle;
  String updatedAt;
  String createdAt;
  Job(
      {this.id,
      this.jobTitle,
      this.updatedAt,
      this.createdAt});

  factory Job.fromMap(Map data) {
    return Job(
      id: data['id'],
      jobTitle: data['jobTitle'],
      updatedAt: data['updatedAt'],
      createdAt: data['createdAt'],
    );
  }
}

赋值后:

Job _job = new Job();

例如_job.jobTitle = 'farmer';

在保存到后端之前,我想确保 _job 对象中没有空值。

而不是检查对象类中的每个项目,例如

If(_job.jobTitle != null && _job.updatedAt != null && ....){
}

如何一步检查对象类是否包含任何空值? 类似的东西

if(_job.contains(null)){
}

【问题讨论】:

  • 顺便说一句:这个逻辑应该是你的类的一部分(比如公共方法说isValid()isComplete()whatever())。

标签: flutter dart


【解决方案1】:

您可以创建另一种方法来检查任何字段是否为null

class Job {
  String id;
  String jobTitle;
  String updatedAt;
  String createdAt;
  Job({this.id, this.jobTitle, this.updatedAt, this.createdAt});

  factory Job.fromMap(Map data) {
    return Job(
      id: data['id'],
      jobTitle: data['jobTitle'],
      updatedAt: data['updatedAt'],
      createdAt: data['createdAt'],
    );
  }

  bool checkIfAnyIsNull() {
    return [id, jobTitle, updatedAt, createdAt].contains(null);
  }
}

void main() {
  Job _job = Job();

  // Comment any of these fields and you would get [true].
  // [false] means all fields are set.
  _job.id = "1";
  _job.jobTitle = "Developer";
  _job.createdAt = "27-11-2019";
  _job.updatedAt = "28-11-2019";

  if(_job.checkIfAnyIsNull()){
    print("Not all fields are set");
  }
}

【讨论】:

    【解决方案2】:

    最好的方法是给对象分配一个空值

    _job = null ;
    

    然后添加新的详细信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-25
      • 1970-01-01
      • 1970-01-01
      • 2021-03-22
      相关资源
      最近更新 更多