接口 DsonObjectWriter

所有超级接口:
AutoCloseable

public interface DsonObjectWriter extends AutoCloseable
如果用户期望强制写入null,需要先调用writeName(String), 再调用writeNull(String)

1.对于对象类型,如果value为null,将自动调用writeNull(String) 2.数组内元素name传null

注意:不要轻易重命名方法,注解处理器对这里的方法名是有依赖的。

作者:
wjybxx date 2023/4/3
  • 方法详细资料

    • writeInt

      void writeInt(String name, int value, WireType wireType, INumberStyle style)
    • writeLong

      void writeLong(String name, long value, WireType wireType, INumberStyle style)
    • writeFloat

      void writeFloat(String name, float value, INumberStyle style)
    • writeDouble

      void writeDouble(String name, double value, INumberStyle style)
    • writeBoolean

      void writeBoolean(String name, boolean value)
    • writeString

      void writeString(String name, String value, StringStyle style)
    • writeNull

      void writeNull(String name)
    • writeBytes

      void writeBytes(String name, byte[] value)
      该方法默认会拷贝value -- 如果不想拷贝,可提前转换为Binary
    • writeBinary

      void writeBinary(String name, Binary binary)
    • writeBinary

      void writeBinary(String name, @Nonnull DsonChunk chunk)
    • writePtr

      void writePtr(String name, ObjectPtr objectPtr)
    • writeLitePtr

      void writeLitePtr(String name, ObjectLitePtr objectLitePtr)
    • writeDateTime

      void writeDateTime(String name, LocalDateTime dateTime)
    • writeExtDateTime

      void writeExtDateTime(String name, ExtDateTime dateTime)
    • writeTimestamp

      void writeTimestamp(String name, Timestamp timestamp)
    • writeObject

      <T> void writeObject(String name, T value, TypeInfo<?> typeInfo, @Nullable ObjectStyle style)
      写嵌套对象
      参数:
      name - 字段的名字,数组元素和顶层对象的name可为null或空字符串
      value - 要写入的对象,getClass获取真实类型 -- 小心枚举。
      typeInfo - 对象的类型参数信息
      style - 对象的编码风格,如果为null则使用目标类型Codec的默认格式
    • writeObject

      default <T> void writeObject(String name, T value)
    • writeObject

      default <T> void writeObject(String name, T value, TypeInfo<?> typeInfo)
    • options

      ConverterOptions options()
    • getCurrentName

      String getCurrentName()
    • writeName

      void writeName(String name)
    • writeStartObject

      void writeStartObject(@Nonnull Object value, TypeInfo<?> typeInfo, ObjectStyle style)
    • writeEndObject

      void writeEndObject()
    • writeStartArray

      void writeStartArray(@Nonnull Object value, TypeInfo<?> typeInfo, ObjectStyle style)
    • writeEndArray

      void writeEndArray()
    • writeValueBytes

      void writeValueBytes(String name, DsonType dsonType, byte[] data)
    • encodeKey

      String encodeKey(Object key)
      编码字典的key
    • println

      void println()
      打印换行,用于控制Dson文本的样式
    • flush

      void flush()
    • close

      void close()
      指定者:
      close 在接口中 AutoCloseable
    • writeStartObject

      default void writeStartObject(Object value, TypeInfo<?> typeInfo)
    • writeStartObject

      default void writeStartObject(String name, Object value, TypeInfo<?> typeInfo)
    • writeStartObject

      default void writeStartObject(String name, Object value, TypeInfo<?> typeInfo, ObjectStyle style)
    • writeStartArray

      default void writeStartArray(Object value, TypeInfo<?> typeInfo)
    • writeStartArray

      default void writeStartArray(String name, Object value, TypeInfo<?> typeInfo)
    • writeStartArray

      default void writeStartArray(String name, Object value, TypeInfo<?> typeInfo, ObjectStyle style)
    • writeInt

      default void writeInt(String name, int value)
    • writeInt

      default void writeInt(String name, int value, WireType wireType)
    • writeLong

      default void writeLong(String name, long value)
    • writeLong

      default void writeLong(String name, long value, WireType wireType)
    • writeFloat

      default void writeFloat(String name, float value)
    • writeDouble

      default void writeDouble(String name, double value)
    • writeString

      default void writeString(String name, String value)
    • writeShort

      default void writeShort(String name, short value)
      应当减少 short/byte/char 的使用,尤其应当避免使用其包装类型,使用的越多越难以扩展,越难以支持跨语言等。
    • writeShort

      default void writeShort(String name, short value, WireType wireType, INumberStyle style)
    • writeByte

      default void writeByte(String name, byte value)
    • writeByte

      default void writeByte(String name, byte value, WireType wireType, INumberStyle style)
    • writeChar

      default void writeChar(String name, char value)
    • writeChar

      default void writeChar(String name, char value, WireType ignore, INumberStyle style)