TypeInfo 是所有类型的子类,有四个子类,分别为 ListTypeInfo, MapTypeInfo,MapTypeInfo,StructTypeInfo, PrimitiveTypeInfo。
TypeInfoFactoryTypeInfo 使用 TypeInfoFactory 创建。TypeInfoFactory 包含若干静态的TypeInfo 创建方法,用于创建 Primitive,Struct,List 和 Map 的 TypeInfo。
getPrimitiveTypeInfo方法用创建的类型的 class 作为参数,如:
TypeInfo stringTypeInfo = TypeInfoFactory.getPrimitiveTypeInfo(String.class); TypeInfo intTypeInfo = TypeInfoFactory.getPrimitiveTypeInfo(Integer.class); TypeInfo booleanTypeInfo = TypeInfoFactory.getPrimitiveTypeInfo(Boolean.class); TypeInfo dateTypeInfo = TypeInfoFactory.getPrimitiveTypeInfo(Date.class);getStructTypeInfo
有两个参数,第 1 个是名字组成的 list,第 2 个参数是类型组成的 list,两个 list 的长度必须一致。
TypeInfo nameTypeInfo = TypeInfoFactory.getPrimitiveTypeInfo(String.class);
TypeInfo ageTypeInfo = TypeInfoFactory.getPrimitiveTypeInfo(Integer.class);
TypeInfo person getStructTypeInfo(Arrays.asList("name", "age"),Arrays.asList(nameTypeInfo, ageTypeInfo));
getListTypeInfo
和 getPrimitiveTypeInfo 一样,只有一个参数,用于指定元素的类型。例如一个有几个名字,可以用下面的创建对应的 TypeInfo。
TypeInfo namesTypeInfo = TypeInfoFactory.getListTypeInfo(String.class);getMapTypeInfo
getMapTypeInfo 有两个参数,分别为 key 的 TypeInfo 和 Value 的TypeInfo。
TypeInfo nameTypeInfo = TypeInfoFactory.getPrimitiveTypeInfo(String.class); TypeInfo ageTypeInfo = TypeInfoFactory.getPrimitiveTypeInfo(Integer.class); TypeInfo person getMapTypeInfo(nameTypeInfo, ageTypeInfo);



