java.lang.Object
cn.wjybxx.dsoncodec.AbstractDsonCodec<T>
- 所有已实现的接口:
DsonCodec<T>
生成的代码会继承该类
- 作者:
- wjybxx date 2023/4/4
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明protected voidafterDecode(DsonObjectReader reader, T inst) 用于执行用户的afterDecode钩子方法。protected voidbeforeEncode(DsonObjectWriter writer, T inst) 用于执行用户的beforeEncode钩子方法。abstract cn.wjybxx.base.TypeInfo获取负责编解码的类对象 如果可以,在数据兼容的情况下,尽量将泛型'T'声明为抽象类或接口,然后通过动态的TypeInfo来绑定编解码类型。protected abstract TnewInstance(DsonObjectReader reader) 创建一个对实例。abstract voidreadFields(DsonObjectReader reader, T inst) 从输入流中读取所有序列化的字段到指定实例上。readObject(DsonObjectReader reader, Supplier<? extends T> factory) 从输入流中解析指定对象。abstract voidwriteFields(DsonObjectWriter writer, T inst) voidwriteObject(DsonObjectWriter writer, T inst, cn.wjybxx.base.TypeInfo declaredType, ObjectStyle style) 将对象写入输出流。从类继承的方法 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait从接口继承的方法 cn.wjybxx.dsoncodec.DsonCodec
autoStartEnd, isWriteAsArray
-
构造器详细资料
-
AbstractDsonCodec
public AbstractDsonCodec()
-
-
方法详细资料
-
getEncoderType
@Nonnull public abstract cn.wjybxx.base.TypeInfo getEncoderType()从接口复制的说明:DsonCodec获取负责编解码的类对象 如果可以,在数据兼容的情况下,尽量将泛型'T'声明为抽象类或接口,然后通过动态的TypeInfo来绑定编解码类型。 EncoderType必须存在对应的TypeMeta- 指定者:
getEncoderType在接口中DsonCodec<T>
-
writeObject
public void writeObject(DsonObjectWriter writer, T inst, cn.wjybxx.base.TypeInfo declaredType, ObjectStyle style) 从接口复制的说明:DsonCodec将对象写入输出流。 将对象及其所有超类定义的所有要序列化的字段写入输出流。注意: 1.name在外部已写入,因此基础类型写入value时name传null。 2.declaredType只影响外层类型信息是否写入,而不应向下传递。以字典为例,KV是否需要写入类型信息,取决于encoderType中的信息。
- 指定者:
writeObject在接口中DsonCodec<T>- 参数:
declaredType- 声明类型,用于判断是否写入类型信息style- 外部期望的输出格式
-
beforeEncode
用于执行用户的beforeEncode钩子方法。 通常用于数据转换。 -
writeFields
-
readObject
从接口复制的说明:DsonCodec从输入流中解析指定对象。 它应该创建对象,并反序列化该类及其所有超类定义的所有要序列化的字段。注意:name在外部已读取,因此基础类型读取value时name传null。
- 指定者:
readObject在接口中DsonCodec<T>- 参数:
factory- 实例工厂
-
newInstance
创建一个对实例。 1.如果是一个抽象类,应该抛出异常。 2.该方法可解决final字段问题。- 返回:
- 可以是子类实例
-
readFields
从输入流中读取所有序列化的字段到指定实例上。- 参数:
inst- 可能是子类实例
-
afterDecode
用于执行用户的afterDecode钩子方法。 通常用于数据转换。
-