diff --git a/util/Sequenceable.md b/util/Sequenceable.md new file mode 100644 index 0000000000000000000000000000000000000000..5a5f44d7d3a356680f42329fe60109a1bdb1f75b --- /dev/null +++ b/util/Sequenceable.md @@ -0,0 +1,29 @@ +### **Rect** +>+ openharmony API: ohos.utils.Sequenceable +>+ openharmony SDK版本:2.1.1.21 以上 +>+ IDE版本:2.1.0.501 +>+ 实现方案:实现Sequenceable接口,并实现Producer()方法: + +```java +public class Rect implements Sequenceable { + public static final Producer PRODUCER = new Producer() { + @Override + public Rect createFromParcel(Parcel source) { + return new Rect(source); + } + }; +} +``` + +>+ 补充说明: +>+ 鸿蒙的ohos.agp.utils.Rect类的反序列化失败 +>+ 安卓实现对应类:Parcel.writeParcelable Parcel.readParcelable , +>+ 鸿蒙对应的实现方法: +```java + Rect rect = new Rect(10, 20, 30, 40); + MessageParcel _data = MessageParcel.obtain(); + _data.writeTypedSequenceable(rect); + Object obj = _data.createSequenceable(); +``` +>+ 结果鸿蒙的ohos.agp.utils.Rect类的反序列化失败(报 Exception message: ohos.utils.ParcelException: fail to create sequenceable creator due to NoSuchFieldException: PRODUCER, class:ohos.agp.utils.Rect错误), +>+ 问题原因:需要实现这个类Sequenceable接口和Producer,实现Sequenceable接口和Producer()方法。