Flutter List深拷贝

文章介绍了在Flutter中如何对包含复杂对象的List数组进行深拷贝,通过将每个对象转换为JSON再反序列化为新对象,确保原始数据不受操作影响。示例代码展示了如何对类A和其内部包含的类B对象进行深拷贝,以及对于非复杂对象数组可使用List.from()或sublist(0)简化处理。

需求:需要记录历史数据,于是在操作之前需要将List数组对象深拷贝一份在一个新的数组对象里。

1:封装了一个复杂对象

import 'package:flutter/material.dart';
import '../../data/enums/direction_enum.dart';
import 'b.dart';

class A{
   
   
  A({
   
   
    this.id,
    this.name,
    this.listB,
    this.offset = Offset.zero,
    this.size = Size.zero,
    this.onSelect = false,
    this.direct = DirectEnum.normal,
  });

  int? id;
  String? name;
  List<B>? listB;
  late Offset offset;
  late Size size;
  late DirectEnum direct;
  late bool onSelect;

  A.fromJson(Map<String, dynamic> json) {
   
   
    id = json['id'];
    name 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值