的带有集合带有bigdecimal的处理

定义一个商品信息类,其中包含bigdecimal、string

1.实现parcelable

2.重写describeContents 和writeToParcel的方法

describeContents 的方法默认处理即可为0,

writeToParcel是序列化处理,将数据写入到Parcel对象中,通过Parcel 对象将所有属性进行处理,若是bigdecimal则将写入string字符串

3.实例化静态内部对象CREATOR,其中createFromParcel是反序列化的处理,将writeToParcel方法序列化的数据进行反序列化。

注意:

writeToParcel中和createFromParcel中即调用的protected GoodInfoModel(Parcel in) 中的处理参数的顺序必须相同

上面这些就是序列化的基本流程,对于Android studio 中类实现Parcelable后重写方法,则自动会生成上述处理。

以下重点标出了bigdecimal的处理

public class GoodInfoModel implements Parcelable {

private BigDecimal total;

private BigDecimal weight;

private String goodsno;

private String barcode;

private BigDecimal qty;

protected GoodInfoModel(Parcel in) {

total = new BigDecimal(in.readString());

weight = new BigDecimal(in.readString());

goodsno = in.readString();

barcode = in.readString();

qty = new BigDecimal(in.readString());

}

public static final Creator CREATOR = new Creator() {

@Override

public GoodInfoModel createFromParcel(Parcel in) {

return new GoodInfoModel(in);

}

@Override

public GoodInfoModel[] newArray(int size) {

return new GoodInfoModel[size];

}

};

public BigDecimal getTotal() {

return total;

}

public void setTotal(BigDecimal total) {

this.total = total;

}

public BigDecimal getWeight() {

return weight;

}

public void setWeight(BigDecimal weight) {

this.weight = weight;

}

public String getGoodsno() {

return goodsno;

}

public void setGoodsno(String goodsno) {

this.goodsno = goodsno;

}

public String getBarcode() {

return barcode;

}

public void setBarcode(String barcode) {

this.barcode = barcode;

}

public BigDecimal getQty() {

return qty;

}

public void setQty(BigDecimal qty) {

this.qty = qty;

}

@Override

public int describeContents() {

return 0;

}

@Override

public void writeToParcel(Parcel dest, int flags) {

dest.writeString(getUnNullString(total + "", "0"));

dest.writeString(getUnNullString(weight + "", "0"));

dest.writeString(goodsno);

dest.writeString(barcode);

dest.writeString(getUnNullString(qty + "", "0"));

}

// 为空判断

private String getUnNullString(String s, String defaultData) {

return (s == null || TextUtils.isEmpty(s) || "null".equals(s)) ? defaultData

: s;

}

订单类:

public class OrderInfo implements Parcelable {

private List goodInfoModels;

private BigDecimal total;

private int count;

private String flow_no;

public OrderInfo(Parcel in) {

goodInfoModels = in.createTypedArrayList(GoodInfoModel.CREATOR);

total = new BigDecimal(in.readString());

count = in.readInt();

flow_no = in.readString();

}

public static final Creator CREATOR = new Creator() {

@Override

public OrderInfo createFromParcel(Parcel in) {

return new OrderInfo(in);

}

@Override

public OrderInfo[] newArray(int size) {

return new OrderInfo[size];

}

};

public OrderInfo() {

}

// 为空判断

private String getUnNullString(String s, String defaultData) {

return (s == null || TextUtils.isEmpty(s) || "null".equals(s)) ? defaultData

: s;

}

public List getGoodInfoModels() {

return goodInfoModels;

}

public void setGoodInfoModels(List goodInfoModels) {

this.goodInfoModels = goodInfoModels;

}

public BigDecimal getTotal() {

return total;

}

public String getFlow_no() {

return flow_no;

}

public void setFlow_no(String flow_no) {

this.flow_no = flow_no;

}

public int getCount() {

return count;

}

public void setCount(int count) {

this.count = count;

}

@Override

public int describeContents() {

return 0;

}

@Override

public void writeToParcel(Parcel dest, int flags) {

dest.writeTypedList(goodInfoModels);

dest.writeString(getUnNullString(total + "", ""));

dest.writeInt(count);

dest.writeString(flow_no);

}

本文地址:https://blog.csdn.net/jiuweitianhu_12345/article/details/112240365

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

java parcelable list_Parcelable序列化处理相关推荐

  1. java parcelable list_parcelable在哪个java包中?

    给你一个案例看看他的导入哪里62616964757a686964616fe58685e5aeb931333365656538的 import android.os.Parcel; import and ...

  2. java parcelable list_Android中Serializable和Parcelable序列化对象详解

    学习内容: 1.序列化的目的 2.Android中序列化的两种方式 3.Parcelable与Serializable的性能比较 4.Android中如何使用Parcelable进行序列化操作 5.P ...

  3. Java对象XML序列化框架-Simple2.0

    Java对象XML序列化框架-Simple2.0 Simple是一个XML序列化框架,一个Java 版本宽容的序列化框架,能够快速在Java 平台上开发XML.支持通过annotations完全配置化 ...

  4. java 对象怎么序列化,java对象序列化总结

    java对象序列化小结 百度百科上介绍序列化是这样的: 序列化 (Serialization): 将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储 ...

  5. fileinputstream自定义类序列化和反序列化_Rest Assured篇:Java中的序列化和反序列化...

    点击上方蓝字设为星标 每天傍晚伴你一起成长! Java 中的序列化和反序列化是一个重要的编程概念.它适用于所有主要的编程语言.在本章中,我们将尝试在Java语言的上下文中理解此概念.在本章的最后,我们 ...

  6. Java对象的序列化与反序列化

    序列化与反序列化 序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程.一般将一个对象存储至一个储存媒介,例如文件或是内存缓冲区等.在网络传输过程中,可以是字节或是 ...

  7. java字段不序列化注解_@Transient注解的使用(不被序列化和作为临时变量存储)...

    java 的transient关键字的作用是需要实现Serilizable接口,将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会序列化到指定的目的地中. trans ...

  8. java 属性不序列化_怎样对带有不可序列化属性的Java对象进行序列化

    原标题:怎样对带有不可序列化属性的Java对象进行序列化 出于很多原因我们想使用自定义的序列化方法取代Java默认的机制.一个最常见的原因是提高性能,而另一个原因是有时候我们无法使用默认的序列化方法. ...

  9. java 四字节uid,Java入门教程-序列化版本号serialVersionUID的作用

    原标题:Java入门教程-序列化版本号serialVersionUID的作用 Java序列化是将一个对象编码成一个字节流,反序列化将字节流编码转换成一个对象.序列化是Java中实现持久化存储的一种方法 ...

最新文章

  1. Tensorrt一些优化技术介绍
  2. 普通域账号客户端计算无关机选项
  3. 第 3 章 镜像 - 010 - base 镜像
  4. 【NLP】如何系统性的学习NLP,有三AI-NLP知识星球等你来
  5. mogodb 的自定义函数定义及引用
  6. C#LeetCode刷题之#744-寻找比目标字母大的最小字母(Find Smallest Letter Greater Than Target)
  7. matlab练习程序(图像序列合成视频)
  8. Android Sensor架构和原理分析
  9. HDU-2686 Matrix 多进程DP
  10. 计算机科学与技术毕业论文题目【115个】
  11. 分享一些第三方免费接口集
  12. 【渗透测试笔记】之【免杀工具——使用Invoke-Obfuscation代码混淆免杀powershell】
  13. 电子合同的风险有哪些?小心别被坑了
  14. 明日之后 服务器维护,明日之后服务器爆满炸服 排队等待进不去什么梗
  15. 基于单片机的秒表计时器系统设计(#0400)
  16. 英特尔换帅!首任CTO重返上任,网友:王者归来,虽然我是AMD的粉丝
  17. 生日快乐网站模板(个人制作)(HTML5+CSS3+JS)
  18. 基于Matlab/simulink的风光储微电网一体化协调系统
  19. JAVA进阶案例 TCP编程之网络聊天工具(客户端)
  20. linux高分屏输入法缩放,Kubuntu 高分屏缩放

热门文章

  1. c语言excel存储文件格式,C语言写excel文件(csv格式)
  2. java编写视频播放器_基于Java的视频播放器可以足够快吗?
  3. 练习-Java继承和多态之接口(19)
  4. win10用一会就蓝屏重启_电脑总是蓝屏重启怎么办
  5. 联想小新700的win10系统uefi引导启动总是蓝屏,太恶心了
  6. 计算机温度测控技术程序,基于单片机的温度测控系统
  7. AutoLISP 学习 (一)
  8. ThinkPad笔记本风扇转速控制软件
  9. GIF表情图片怎么制作
  10. 如何创建一个可执行bat文件