- 所有已实现的接口:
Serializable,Comparable<TypeWritePolicy>,Constable
类型信息的写入策略
- 作者:
- wjybxx date - 2023/4/27
-
嵌套类概要
从类继承的嵌套类/接口 java.lang.Enum
Enum.EnumDesc<E extends Enum<E>> -
枚举常量概要
枚举常量 -
方法概要
修饰符和类型方法说明static TypeWritePolicy返回带有指定名称的该类的枚举常量。static TypeWritePolicy[]values()返回包含该枚举类的常量的数组, 顺序与声明这些常量的顺序相同
-
枚举常量详细资料
-
NONE
总是不写入对象的类型信息,无论运行时类型与声明类型是否相同; 当与脚本语言交互时可能有用。 -
OPTIMIZED
优化写入策略。 1.当[encoderType]和[declaredType]完全相同时不写入类型信息 -- 包括泛型参数也相同。 2.当[encoderType]是[declaredType]的默认解析类型,且泛型参数相同时,不写入类型信息。ps:通常我们的字段类型定义是明确的,因此可以省去大量不必要的类型信息; 当用于静态语言之间通信时,可选择该策略。
-
ALWAYS
总是写入对象的类型信息,无论运行时类型与声明类型是否相同 这种方式有更好的兼容性,对跨语言友好,因为目标语言可能没有泛型,或没有注解处理器生成辅助代码等; 但这种方式会大幅增加序列化后的大小,需要慎重考虑。
-
-
方法详细资料
-
values
返回包含该枚举类的常量的数组, 顺序与声明这些常量的顺序相同- 返回:
- 包含该枚举类的常量的数组,顺序与声明这些常量的顺序相同
-
valueOf
返回带有指定名称的该类的枚举常量。 字符串必须与用于声明该类的枚举常量的 标识符完全匹配。(不允许有多余 的空格字符。)- 参数:
name- 要返回的枚举常量的名称。- 返回:
- 返回带有指定名称的枚举常量
- 抛出:
IllegalArgumentException- 如果该枚举类没有带有指定名称的常量NullPointerException- 如果参数为空值
-