public interface DsonCodecCaster
当要编码的对象类型不存在直接的Codec时,该方法用于转换编解码类型。
1.该接口是从DsonCodecRegistry的逻辑中分离出来的,可更好的处理类型转换冲突。
2.不必考虑效率问题,结果会被缓存。
3.需保证线程安全性,因此建议实现为无状态的。
- 作者:
- wjybxx date - 2024/9/28
-
方法概要
修饰符和类型方法说明castDecoderType(TypeInfo type) 转换解码类型 1.可以返回子类的Codec,如果子类和当前类数据兼容。castEncoderType(TypeInfo type) 转换编码类型 1.可以向上转换,因为子类实例可以向上转型,但子类特殊数据将被丢弃。
-
方法详细资料
-
castEncoderType
转换编码类型 1.可以向上转换,因为子类实例可以向上转型,但子类特殊数据将被丢弃。 2.不可向下转换,因为超类实例不能向下转型。 3.泛型参数的转换由用户处理,尽量转换为具有相同泛型参数的类型。 4.转换后的类型必须存在对应的Codec和TypeMeta。 5.集合类型通常转换为其对应的接口类型。- 参数:
type- 要转换的类,泛型类的话是泛型定义类- 返回:
- 要转换的编码类型;null表示找不到合适的类型,将继续查找下一个;返回参数表示中断查询
-
castDecoderType
转换解码类型 1.可以返回子类的Codec,如果子类和当前类数据兼容。 2.不可向上转型,因为超类Codec创建的实例不能安全向下转型。 3.泛型参数的转换由用户处理,尽量转换为具有相同泛型参数的类型。 4.转换后的类型必须存在对应的Codec和TypeMeta。- 参数:
type- 要转换的类,泛型类的话是泛型定义类- 返回:
- 要转换的解码类型;null表示找不到合适的类型,将继续查找下一个;返回参数表示中断查询
-