有没有办法在 Dart 中克​​隆对象?

Is there a way to clone objects in Dart?

我在 Whosebug 上回答了几个关于这个的问题,但对我来说没有任何意义。最简单的方法是什么?

查看下方class以供参考:

class Customer {
  final String id;
  final String name;
  final String address;
  final String phoneNo;
  final String gstin;
  final String state;

Customer({
    this.id = '',
    @required this.name,
    @required this.address,
    @required this.phoneNo,
    this.gstin,
    @required this.state,
  });

  Customer copyWith({
    String name,
    String address,
    String phoneNo,
    String gstin,
    String state,
  }) {
    return Customer(
      name: name ?? this.name,
      address: address ?? this.address,
      phoneNo: phoneNo ?? this.phoneNo,
      gstin: gstin ?? this.gstin,
      state: state ?? this.state,
    );
  }

}

使用 copyWith 构造函数,您可以创建对象的副本。

如果您不向 copyWith 构造函数传递任何参数,它return具有相同值的相同对象

但是,如果您希望更改使用 copyWith 构造函数执行的任何参数,它将 return 使用您传递的新参数值复制对象

注意:在 copyWith 构造函数中,假设如果您更改一个参数值,那么其他参数值与第一个对象保持相同。