- 所有超级接口:
AutoCloseable
如果用户期望强制写入null,需要先调用
writeName(String),
再调用writeNull(String)
1.对于对象类型,如果value为null,将自动调用writeNull(String)
2.数组内元素name传null
注意:不要轻易重命名方法,注解处理器对这里的方法名是有依赖的。
- 作者:
- wjybxx date 2023/4/3
-
方法概要
修饰符和类型方法说明voidclose()<T> StringencodeKey(T key, cn.wjybxx.base.TypeInfo keyType) 编码字典的keyvoidflush()cn.wjybxx.base.TypeInfo获取当前对象的类型信息options()voidsetEncoderType(cn.wjybxx.base.TypeInfo encoderType) 设置当前对象的encoderType 1.java特殊支持,用于读写Object/Array期间查询当前对象的类型信息 2.应当在writeStartObject/Array以后调用voidwriteBinary(String name, Binary binary) Binary默认为可共享对象voidwriteBoolean(String name, boolean value) default voiddefault voidwriteByte(String name, byte value, INumberStyle style) voidwriteBytes(String name, byte[] value) bytes默认为不可共享对象 -- 如果不期望拷贝,可先包装为BinaryvoidwriteBytes(String name, byte[] value, int offset, int len) default voiddefault voidwriteChar(String name, char value, INumberStyle style) voidwriteDateTime(String name, LocalDateTime dateTime) default voidwriteDouble(String name, double value) voidwriteDouble(String name, double value, INumberStyle style) voidvoidvoidwriteExtDateTime(String name, ExtDateTime dateTime) default voidwriteFloat(String name, float value) voidwriteFloat(String name, float value, INumberStyle style) default voidvoidwriteInt(String name, int value, INumberStyle style) voidwriteLitePtr(String name, ObjectLitePtr objectLitePtr) default voidvoidwriteLong(String name, long value, INumberStyle style) voidvoiddefault <T> voidwriteObject(String name, T value) default <T> voidwriteObject(String name, T value, cn.wjybxx.base.TypeInfo declaredType) <T> voidwriteObject(String name, T value, cn.wjybxx.base.TypeInfo declaredType, ObjectStyle style) 写嵌套对象voiddefault voidwriteShort(String name, short value) 应当减少 short/byte/char 的使用,尤其应当避免使用其包装类型,使用的越多越难以扩展,越难以支持跨语言等。default voidwriteShort(String name, short value, INumberStyle style) voidwriteStartArray(ObjectStyle style) 开始写入Arraydefault voidwriteStartArray(ObjectStyle style, cn.wjybxx.base.TypeInfo encoderType, cn.wjybxx.base.TypeInfo declaredType) default voidwriteStartArray(String name, ObjectStyle style) default voidwriteStartArray(String name, ObjectStyle style, cn.wjybxx.base.TypeInfo encoderType, cn.wjybxx.base.TypeInfo declaredType) voidwriteStartObject(ObjectStyle style) 开始写入Objectdefault voidwriteStartObject(ObjectStyle style, cn.wjybxx.base.TypeInfo encoderType, cn.wjybxx.base.TypeInfo declaredType) default voidwriteStartObject(String name, ObjectStyle style) default voidwriteStartObject(String name, ObjectStyle style, cn.wjybxx.base.TypeInfo encoderType, cn.wjybxx.base.TypeInfo declaredType) default voidwriteString(String name, String value) voidwriteString(String name, String value, StringStyle style) voidwriteTimestamp(String name, Timestamp timestamp) voidwriteTypeInfo(cn.wjybxx.base.TypeInfo encoderType, cn.wjybxx.base.TypeInfo declaredType) 写入类型信息 1.该方法应当在writeStartObject/Array后立即调用,写在所有字段之前。voidwriteValueBytes(String name, DsonType dsonType, byte[] data) 写入已编码的二进制数据
-
方法详细资料
-
writeInt
-
writeLong
-
writeFloat
-
writeDouble
-
writeBoolean
-
writeString
-
writeNull
-
writeBytes
bytes默认为不可共享对象 -- 如果不期望拷贝,可先包装为Binary -
writeBytes
-
writeBinary
Binary默认为可共享对象 -
writePtr
-
writeLitePtr
-
writeDateTime
-
writeExtDateTime
-
writeTimestamp
-
writeObject
<T> void writeObject(String name, T value, cn.wjybxx.base.TypeInfo declaredType, @Nullable ObjectStyle style) 写嵌套对象- 参数:
name- 字段的名字,数组元素和顶层对象的name可为null或空字符串value- 要写入的对象declaredType- 对象的声明类型style- 对象的编码风格,如果为null则使用目标类型Codec的默认格式
-
writeObject
-
writeObject
-
options
ConverterOptions options() -
getCurrentName
String getCurrentName() -
writeName
-
writeTypeInfo
void writeTypeInfo(cn.wjybxx.base.TypeInfo encoderType, cn.wjybxx.base.TypeInfo declaredType) 写入类型信息 1.该方法应当在writeStartObject/Array后立即调用,写在所有字段之前。 2.默认会调用setEncoderType(TypeInfo)保存类型信息- 参数:
encoderType- 编码器绑定的类型,真实写入的类型信息declaredType- 对象的声明类型,用于测试是否写入类型信息
-
writeStartObject
开始写入Object -
writeEndObject
void writeEndObject() -
writeStartArray
开始写入Array -
writeEndArray
void writeEndArray() -
writeValueBytes
写入已编码的二进制数据 -
encodeKey
编码字典的key -
setEncoderType
void setEncoderType(cn.wjybxx.base.TypeInfo encoderType) 设置当前对象的encoderType 1.java特殊支持,用于读写Object/Array期间查询当前对象的类型信息 2.应当在writeStartObject/Array以后调用 -
getEncoderType
cn.wjybxx.base.TypeInfo getEncoderType()获取当前对象的类型信息 -
flush
void flush() -
close
void close()- 指定者:
close在接口中AutoCloseable
-
writeStartObject
default void writeStartObject(ObjectStyle style, cn.wjybxx.base.TypeInfo encoderType, cn.wjybxx.base.TypeInfo declaredType) -
writeStartObject
-
writeStartObject
default void writeStartObject(String name, ObjectStyle style, cn.wjybxx.base.TypeInfo encoderType, cn.wjybxx.base.TypeInfo declaredType) -
writeStartArray
default void writeStartArray(ObjectStyle style, cn.wjybxx.base.TypeInfo encoderType, cn.wjybxx.base.TypeInfo declaredType) -
writeStartArray
-
writeStartArray
default void writeStartArray(String name, ObjectStyle style, cn.wjybxx.base.TypeInfo encoderType, cn.wjybxx.base.TypeInfo declaredType) -
writeInt
-
writeLong
-
writeFloat
-
writeDouble
-
writeString
-
writeShort
应当减少 short/byte/char 的使用,尤其应当避免使用其包装类型,使用的越多越难以扩展,越难以支持跨语言等。 -
writeShort
-
writeByte
-
writeByte
-
writeChar
-
writeChar
-