枚举类 TypeWritePolicy

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

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

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

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

    枚举常量
    枚举常量
    说明
    总是写入对象的类型信息,无论运行时类型与声明类型是否相同 这种方式有更好的兼容性,对跨语言友好,因为目标语言可能没有泛型,或没有注解处理器生成辅助代码等; 但这种方式会大幅增加序列化后的大小,需要慎重考虑。
    总是不写入对象的类型信息,无论运行时类型与声明类型是否相同; 当与脚本语言交互时可能有用。
    优化写入策略。
  • 方法概要

    修饰符和类型
    方法
    说明
    返回带有指定名称的该类的枚举常量。
    返回包含该枚举类的常量的数组, 顺序与声明这些常量的顺序相同

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

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

    • NONE

      public static final TypeWritePolicy NONE
      总是不写入对象的类型信息,无论运行时类型与声明类型是否相同; 当与脚本语言交互时可能有用。
    • OPTIMIZED

      public static final TypeWritePolicy OPTIMIZED
      优化写入策略。 1.当[encoderType]和[declaredType]完全相同时不写入类型信息 -- 包括泛型参数也相同。 2.当[encoderType]是[declaredType]的默认解析类型,且泛型参数相同时,不写入类型信息。

      ps:通常我们的字段类型定义是明确的,因此可以省去大量不必要的类型信息; 当用于静态语言之间通信时,可选择该策略。

    • ALWAYS

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

    • values

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

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