仓颉应用开发之——序列化基本概念(15)
一 概述
- 序列化和反序列化概念
- 仓颉编程实现序列化步骤
- 仓颉编程中的函数及接口
二 序列化和反序列化概念
- Java中提供了Serializable和Parcelable序列化接口
- 序列化(Serialization)是一种将对象以一连串的字节描述的过程,将程序中的对象,放入硬盘(文件)中保存就是序列化,如果不存放在磁盘中,而是一直存放在内存中,会增大内存的消耗;序列化就是将对象的状态信息转换为可以存储或传输的形式的过程;
- 反序列化(Deserialization)是一种将这些字节重建成一个对象的过程,将硬盘(文件)中的字节码重新转成对象就是反序列化。
三 仓颉编程实现序列化步骤
3.1 序列化步骤
- 自定义类实现Serializable接口,并实现serialize序列化方法、deserialize反序列化方法
- serialize序列化方法:调用DataModelStruct将类对象转换位DataModel
- deserialize反序列化方法:接受一个DataModel,并将DataModel对象解析为类对象
3.2 序列化示例
1 | class Location <: Serializable<Location> { |
四 仓颉编程中的函数及接口
4.1 导包
1 | import serialization.serialization.* |
4.2 继承关系( <:)和接口(Serializable)
1 | class Location <: Serializable<Location>{ |
4.3 类
1-DataModel(抽象类,中间数据层)
1 | public abstract class DataModel |
2-具体类
具体类 | 方法 | 说明 |
---|---|---|
DataModelBool | getValue() | Bool 类型数据的封装 |
DataModelFloat | getValue() | Float64 类型数据的封装 |
DataModelInt | getValue() | Int64 类型数据的封装 |
DataModelNull | / | 对 Null 类型数据的封装 |
DataModelSeq | add(DataModel) getItems() |
对 ArrayList<DataModel> 类型数据的封装 |
DataModelString | getValue() | 对 String 类型数据的封装 |
DataModelStruct | add(Field) get(String) getFields() |
实现 class 对象到 DataModel 的转换 |
Field | getData() getName() |
存储 DataModelStruct 的元素 |
五 参考
- CSDN-序列化、反序列化
- HarmonyOS NEXT Developer Beta5 仓颉-serialization模块