类 EnumCodec<T extends cn.wjybxx.base.EnumLite>

java.lang.Object
cn.wjybxx.dsoncodec.codecs.AbstractEnumCodec<T>
cn.wjybxx.dsoncodec.codecs.EnumCodec<T>
所有已实现的接口:
DsonCodec<T>

public class EnumCodec<T extends cn.wjybxx.base.EnumLite> extends AbstractEnumCodec<T> implements DsonCodec<T>
让枚举的Codec继承该Codec的话,生成的代码就更为稳定,我们调整编解码方式也更方便。
作者:
wjybxx date - 2023/4/24
  • 构造器详细资料

    • EnumCodec

      public EnumCodec(Class<T> encoderClass, IntFunction<T> mapper)
      参数:
      mapper - forNumber静态方法的lambda表达式
  • 方法详细资料

    • forName

      @Nullable public T forName(String name)
      指定者:
      forName 在类中 AbstractEnumCodec<T extends cn.wjybxx.base.EnumLite>
    • forNumber

      @Nullable public T forNumber(int number)
      指定者:
      forNumber 在类中 AbstractEnumCodec<T extends cn.wjybxx.base.EnumLite>
    • getEncoderClass

      @Nonnull public final Class<T> getEncoderClass()
      从接口复制的说明: DsonCodec
      获取负责编解码的类对象
      指定者:
      getEncoderClass 在接口中 DsonCodec<T extends cn.wjybxx.base.EnumLite>
    • autoStartEnd

      public final boolean autoStartEnd()
      false 可以将枚举简单写为整数
      指定者:
      autoStartEnd 在接口中 DsonCodec<T extends cn.wjybxx.base.EnumLite>
    • writeObject

      public void writeObject(DsonObjectWriter writer, T instance, TypeInfo<?> typeInfo, ObjectStyle style)
      从接口复制的说明: DsonCodec
      将对象写入输出流。 将对象及其所有超类定义的所有要序列化的字段写入输出流。

      注意:name在外部已写入,因此基础类型写入value时name传null或空字符串。

      指定者:
      writeObject 在接口中 DsonCodec<T extends cn.wjybxx.base.EnumLite>
      参数:
      typeInfo - 对象的类型信息(声明类型)
      style - 外部期望的输出格式
    • readObject

      public T readObject(DsonObjectReader reader, TypeInfo<?> typeInfo, Supplier<? extends T> factory)
      从接口复制的说明: DsonCodec
      从输入流中解析指定对象。 它应该创建对象,并反序列化该类及其所有超类定义的所有要序列化的字段。

      注意:name在外部已读取,因此读取value时使用DsonObjectReader.getCurrentName()

      指定者:
      readObject 在接口中 DsonCodec<T extends cn.wjybxx.base.EnumLite>
      参数:
      typeInfo - 对象的类型信息(声明类型)
      factory - 实例工厂