Mybatis TypeParameterResolver
TypeParameterResolver這是個工具類,提供了一系類靜態方法來解析指定類中欄位,方法返回值或作者方法參數類型。
public static Type resolveFieldType(Field field, Type srcType) {//解析欄位的類型
Type fieldType = field.getGenericType();//獲取欄位的聲明類型
Class<?> declaringClass = field.getDeclaringClass();//獲取欄位定義所在的類的Class對象
return resolveType(fieldType, srcType, declaringClass);//後續處理
}
private static Type resolveType(Type type, Type srcType, Class<?> declaringClass) {
if (type instanceof TypeVariable) {//解析type為TypeVariable類型的
return resolveTypeVar((TypeVariable<?>) type, srcType, declaringClass);
} else if (type instanceof ParameterizedType) {//解析type為ParameterizedType類型的
return resolveParameterizedType((ParameterizedType) type, srcType, declaringClass);
} else if (type instanceof GenericArrayType) {//解析type為GenericArrayType類型的
return resolveGenericArrayType((GenericArrayType) type, srcType, declaringClass);
} else {
return type;//class類型
}//由於wildcardType是通配符泛型,所以不會直接把欄位,返回值,參數定義為此類型,但可嵌套在別的類型中
}
※MQTT協議的初淺認識之推送訂閱
※Spring data MongoDB 之 MongoRepository
TAG:程序員小新人學習 |