flutter model类的2种写法

本文介绍了在Flutter中创建Model类的两种方法,一种是在成员变量前添加`final`关键字,另一种则不使用`final`。使用工厂方法创建时,若不加`final`可能会导致编译错误。详细展示了TravelTabModel和TravelTab类的实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果这2种方法,用工厂模式的一定在成员变量前加final,不然要报错了

方法一:成员变量有 final 的

class TravelTabModel {

 final String url;

 final List<TravelTab> tabs;

  TravelTabModel({this.url,this.tabs});

    factory  TravelTabModel.fromJson(Map<String,dynamic> json){

    String url =json['url'];

    List<TravelTab> tabs = (json['tabs'] as List).map((i)=>TravelTab.fromJson(i)).toList();

      return TravelTabModel(url: url,tabs: tabs );

    }

}

 

class TravelTab {

   String labelName;

   String groupChannelCode;

 

   TravelTab({this.labelName,this.groupChannelCode});

 

    TravelTab.fromJson(Map<String,dynamic> json){

      labelName =json['labelName'];

      groupChannelCode = json['groupChannelCode'];

    }

 

}

方法二:没有final 的方法。

class TravelTabModel {

  String url;

 List<TravelTab> tabs;

 

  TravelTabModel({this.url,this.tabs});

   TravelTabModel.fromJson(Map<String, dynamic> json){

      url =json['url'];

     (json['tabs'] as List).map((i) => TravelTab.fromJson(i));

   }

}

 

class TravelTab {

   

   String labelName;

   String groupChannelCode;

 

   TravelTab({this.labelName,this.groupChannelCode});

 

    TravelTab.fromJson(Map<String,dynamic> json){

      labelName =json['labelName'];

      groupChannelCode = json['groupChannelCode'];

    }

 

}

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值