枚举类 ClassIdPolicy

java.lang.Object
java.lang.Enum<ClassIdPolicy>
cn.wjybxx.dsoncodec.ClassIdPolicy
所有已实现的接口:
Serializable, Comparable<ClassIdPolicy>, Constable

public enum ClassIdPolicy extends Enum<ClassIdPolicy>
类型id的写入策略
作者:
wjybxx date - 2023/4/27
  • 嵌套类概要

    从类继承的嵌套类/接口 java.lang.Enum

    Enum.EnumDesc<E extends Enum<E>>
  • 枚举常量概要

    枚举常量
    枚举常量
    说明
    总是写入对象的类型信息,无论运行时类型与声明类型是否相同 这种方式有更好的兼容性,对跨语言友好,因为目标语言可能没有泛型,或没有注解处理器生成辅助代码等; 但这种方式会大幅增加序列化后的大小,需要慎重考虑。
    总是不写入对象的类型信息,无论运行时类型与声明类型是否相同
    当对象的运行时类型和声明类型相同时不写入类型信息 通常我们的字段类型定义是明确的,因此可以省去大量不必要的类型信息。
  • 方法概要

    修饰符和类型
    方法
    说明
    boolean
    test(Class<?> declaredType, Class<?> encoderType)
     
    返回带有指定名称的该类的枚举常量。
    static ClassIdPolicy[]
    返回包含该枚举类的常量的数组, 顺序与声明这些常量的顺序相同

    从类继承的方法 java.lang.Object

    getClass, notify, notifyAll, wait, wait, wait
  • 枚举常量详细资料

    • OPTIMIZED

      public static final ClassIdPolicy OPTIMIZED
      当对象的运行时类型和声明类型相同时不写入类型信息 通常我们的字段类型定义是明确的,因此可以省去大量不必要的类型信息。 如果仅用于java或其它静态类型语言,建议使用该模式。
    • ALWAYS

      public static final ClassIdPolicy ALWAYS
      总是写入对象的类型信息,无论运行时类型与声明类型是否相同 这种方式有更好的兼容性,对跨语言友好,因为目标语言可能没有泛型,或没有注解处理器生成辅助代码等; 但这种方式会大幅增加序列化后的大小,需要慎重考虑。
    • NONE

      public static final ClassIdPolicy NONE
      总是不写入对象的类型信息,无论运行时类型与声明类型是否相同
  • 方法详细资料

    • values

      public static ClassIdPolicy[] values()
      返回包含该枚举类的常量的数组, 顺序与声明这些常量的顺序相同
      返回:
      包含该枚举类的常量的数组,顺序与声明这些常量的顺序相同
    • valueOf

      public static ClassIdPolicy valueOf(String name)
      返回带有指定名称的该类的枚举常量。 字符串必须与用于声明该类的枚举常量的 标识符完全匹配。(不允许有多余 的空格字符。)
      参数:
      name - 要返回的枚举常量的名称。
      返回:
      返回带有指定名称的枚举常量
      抛出:
      IllegalArgumentException - 如果该枚举类没有带有指定名称的常量
      NullPointerException - 如果参数为空值
    • test

      public boolean test(Class<?> declaredType, Class<?> encoderType)