如何在 Flutter 中检查类是否包含 null

Lea*_*day 3 dart flutter

我有一堂课

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'],
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

赋值后:

Job _job = new Job();
Run Code Online (Sandbox Code Playgroud)

例如 _job.jobTitle = 'farmer';

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

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

If(_job.jobTitle != null && _job.updatedAt != null && ....){
}
Run Code Online (Sandbox Code Playgroud)

如果对象类包含任何空值,我如何进行一步检查?就像是

if(_job.contains(null)){
}
Run Code Online (Sandbox Code Playgroud)

Din*_*har 7

您可以创建另一种方法来检查是否有任何字段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");
  }
}
Run Code Online (Sandbox Code Playgroud)