java.lang.Object
cn.wjybxx.dsoncodec.DsonConverterUtils
- 作者:
- wjybxx date 2023/4/4
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明static StringarrayRankSymbol(int rank) static Class<?> boxIfPrimitiveType(Class<?> type) static <T> booleancanInheritTypeArgs(Class<T> encoderClass, TypeInfo<?> typeInfo) 判断要编码的类型是否可继承声明类型的泛型参数static <T> booleancanInheritTypeArgs(Class<T> thisClass, Class<?> targetClass) 测试当前类是否可继承目标类的泛型参数static <T> Tjava.lang.ClassCastException: Cannot cast java.lang.Integer to intClass.cast(Object)对基本类型有坑。。。。static <T,E> T convertList2Array(List<? extends E> list, Class<T> arrayType) List转Arraystatic <T extends Collection<?>>
CollectionCodec<T> createCollectionCodec(MethodHandles.Lookup lookup, Class<T> clazz) createMapCodec(MethodHandles.Lookup lookup, Class<T> clazz) static intgetArrayRank(Class<?> clz) 获取数组的阶数 -- 如果不是数组,则返回0static DsonCodecRegistry获取默认的编解码器static TypeMetaRegistry获取默认的元数据注册表static ObjectgetDefaultValue(Class<?> type) 获取给定类型的默认值static <T> TypeInfo<?> getElementActualTypeInfo(Class<T> rawType) 获取传递给集合的元素类型;不存在则返回nuLlstatic Class<?> getEncodeClass(Object value) 枚举实例可能是枚举类的子类,如果枚举实例声明了代码块{},在编解码时需要转换为声明类static <T> TypeInfo<?> getKeyActualTypeInfo(Class<T> rawType) 获取传递给字典的Key类型;不存在则返回nuLlstatic Class<?> getRootComponentType(Class<?> clz) 获取根元素的类型 -- 如果Type是数组,则返回最底层的元素类型;如果不是数组,则返回typestatic booleanisAssignable(Class<?> lhsType, Class<?> rhsType) 测试右手边的类型是否可以赋值给左边的类型。static booleanisAssignableValue(Class<?> type, Object value) 测试给定的值是否可以赋值给定的类型。static booleanstatic <T> booleanisEncodeAsArray(Class<T> encoderClass) 注意:默认情况下map是一个数组对象,而不是普通的对象static booleanisPrimitiveType(Class<?> type) static <T> Supplier<T> noArgConstructorToSupplier(MethodHandles.Lookup lookup, Constructor<T> constructor) 无参构造函数转lambda实例 -- 可避免解码过程中的反射static Class<?> unboxIfWrapperType(Class<?> type)
-
构造器详细资料
-
DsonConverterUtils
public DsonConverterUtils()
-
-
方法详细资料
-
arrayRankSymbol
-
getRootComponentType
获取根元素的类型 -- 如果Type是数组,则返回最底层的元素类型;如果不是数组,则返回type -
getArrayRank
获取数组的阶数 -- 如果不是数组,则返回0 -
canInheritTypeArgs
判断要编码的类型是否可继承声明类型的泛型参数 -
canInheritTypeArgs
测试当前类是否可继承目标类的泛型参数 -
getElementActualTypeInfo
获取传递给集合的元素类型;不存在则返回nuLl -
getKeyActualTypeInfo
获取传递给字典的Key类型;不存在则返回nuLl -
getDefaultCodecRegistry
获取默认的编解码器 -
getDefaultTypeMetaRegistry
获取默认的元数据注册表 -
getDefaultValue
获取给定类型的默认值 -
boxIfPrimitiveType
-
unboxIfWrapperType
-
isBoxType
-
isPrimitiveType
-
isAssignable
测试右手边的类型是否可以赋值给左边的类型。 基本类型和其包装类型之间将认为是可赋值的。- 参数:
lhsType- 基类型rhsType- 测试的类型- 返回:
- 如果测试的类型可以赋值给基类型则返回true,否则返回false
-
isAssignableValue
测试给定的值是否可以赋值给定的类型。 基本类型和其包装类型之间将认为是可赋值的,但null值不可以赋值给基本类型。- 参数:
type- 目标类型value- 测试的值- 返回:
- 如果目标值可以赋值给目标类型则返回true
-
castValue
java.lang.ClassCastException: Cannot cast java.lang.Integer to intClass.cast(Object)对基本类型有坑。。。。 -
getEncodeClass
枚举实例可能是枚举类的子类,如果枚举实例声明了代码块{},在编解码时需要转换为声明类 -
isEncodeAsArray
注意:默认情况下map是一个数组对象,而不是普通的对象 -
convertList2Array
List转Array -
noArgConstructorToSupplier
public static <T> Supplier<T> noArgConstructorToSupplier(MethodHandles.Lookup lookup, Constructor<T> constructor) throws Throwable 无参构造函数转lambda实例 -- 可避免解码过程中的反射- 抛出:
Throwable
-
createCollectionCodec
public static <T extends Collection<?>> CollectionCodec<T> createCollectionCodec(MethodHandles.Lookup lookup, Class<T> clazz) - 参数:
lookup- 外部缓存实例,避免每次创建的开销
-
createMapCodec
public static <T extends Map<?,?>> MapCodec<T> createMapCodec(MethodHandles.Lookup lookup, Class<T> clazz)
-