java.lang.Object
cn.wjybxx.dsoncodec.TypeInfo<T>
- 类型参数:
T- T最好使用原始类型,不要再带有泛型,否则你会痛苦的 -- 因为 xxx.class是不包含泛型信息的。
类型信息
有限泛型
由于Java是伪泛型,而想通过外部库将类型信息省略做到极致,要付出极高的代价。 因此我们禁止泛型递归,即禁止泛型参数也是泛型,因此typeArgs不是TypeInfo类型。
这种程度的支持已经够我们解决大部分问题了,特殊情况下由用户封装一层即可解决。
数组泛型信息
注意:由于Class.getComponentType()不包含泛型信息,
而我们需要这部分数据,因此我们将数组的泛型信息也存储在typeArgs中,
因此不能简单根据泛型参数个数判断是否是泛型类,请通过isGenericType()判断。
ps:数组不是泛型类。- 作者:
- wjybxx date 2023/3/31
-
字段概要
字段修饰符和类型字段说明static final TypeInfo<LinkedHashMap> static final TypeInfo<LinkedHashSet> 表示不写入类型信息这里不能调用of...因为of可能返回该对象原始类型static final TypeInfo<LinkedHashMap> 泛型参数信息 -- 不再递归 -
方法概要
修饰符和类型方法说明booleanTypeInfo<?> 获取数组的元素类型TypeInfo<?> getGenericArgument(int idx) 获取泛型参数TypeInfo<?> 获取泛型原型inthashCode()booleanisArray()是否是数组boolean是否是泛型类 注意:这不代表rawType是泛型类,使用时务必小心。boolean是否是基础类型TypeInfo<?> 构建数组类型static <T> TypeInfo<T> static <T> TypeInfo<T> static <T> TypeInfo<T> static <T> TypeInfo<T> static <T> TypeInfo<T> static <T> TypeInfo<T> toString()
-
字段详细资料
-
rawType
原始类型 -
typeArgs
泛型参数信息 -- 不再递归 -
OBJECT
这里不能调用of...因为of可能返回该对象 -
INTEGER
-
LONG
-
STRING
-
NONE
表示不写入类型信息 -
ARRAYLIST
-
LINKED_HASHSET
-
LINKED_HASHMAP
-
STRING_LINKED_HASHMAP
-
HASHMAP
-
STRING_HASHMAP
-
-
方法详细资料
-
isPrimitive
public boolean isPrimitive()是否是基础类型 -
isGenericType
public boolean isGenericType()是否是泛型类 注意:这不代表rawType是泛型类,使用时务必小心。 -
getGenericTypeDefinition
获取泛型原型 -
getGenericArgument
获取泛型参数 -
isArray
public boolean isArray()是否是数组 -
getComponentType
获取数组的元素类型 -
makeArrayType
构建数组类型 -
of
-
of
-
of
-
of
-
of
-
of
-
equals
-
hashCode
public int hashCode() -
toString
-