提交 7dc9ec53 编写于 作者: J Juergen Hoeller

return generics-capable Class references

上级 e7eb6843
......@@ -45,7 +45,7 @@ public abstract class GenericCollectionTypeResolver {
* @param collectionClass the collection class to introspect
* @return the generic type, or <code>null</code> if none
*/
public static Class getCollectionType(Class<? extends Collection> collectionClass) {
public static Class<?> getCollectionType(Class<? extends Collection> collectionClass) {
return extractTypeFromClass(collectionClass, Collection.class, 0);
}
......@@ -55,7 +55,7 @@ public abstract class GenericCollectionTypeResolver {
* @param mapClass the map class to introspect
* @return the generic type, or <code>null</code> if none
*/
public static Class getMapKeyType(Class<? extends Map> mapClass) {
public static Class<?> getMapKeyType(Class<? extends Map> mapClass) {
return extractTypeFromClass(mapClass, Map.class, 0);
}
......@@ -65,7 +65,7 @@ public abstract class GenericCollectionTypeResolver {
* @param mapClass the map class to introspect
* @return the generic type, or <code>null</code> if none
*/
public static Class getMapValueType(Class<? extends Map> mapClass) {
public static Class<?> getMapValueType(Class<? extends Map> mapClass) {
return extractTypeFromClass(mapClass, Map.class, 1);
}
......@@ -74,7 +74,7 @@ public abstract class GenericCollectionTypeResolver {
* @param collectionField the collection field to introspect
* @return the generic type, or <code>null</code> if none
*/
public static Class getCollectionFieldType(Field collectionField) {
public static Class<?> getCollectionFieldType(Field collectionField) {
return getGenericFieldType(collectionField, Collection.class, 0, 1);
}
......@@ -86,7 +86,7 @@ public abstract class GenericCollectionTypeResolver {
* nested List, whereas 2 would indicate the element of the nested List)
* @return the generic type, or <code>null</code> if none
*/
public static Class getCollectionFieldType(Field collectionField, int nestingLevel) {
public static Class<?> getCollectionFieldType(Field collectionField, int nestingLevel) {
return getGenericFieldType(collectionField, Collection.class, 0, nestingLevel);
}
......@@ -95,7 +95,7 @@ public abstract class GenericCollectionTypeResolver {
* @param mapField the map field to introspect
* @return the generic type, or <code>null</code> if none
*/
public static Class getMapKeyFieldType(Field mapField) {
public static Class<?> getMapKeyFieldType(Field mapField) {
return getGenericFieldType(mapField, Map.class, 0, 1);
}
......@@ -107,7 +107,7 @@ public abstract class GenericCollectionTypeResolver {
* nested List, whereas 2 would indicate the element of the nested List)
* @return the generic type, or <code>null</code> if none
*/
public static Class getMapKeyFieldType(Field mapField, int nestingLevel) {
public static Class<?> getMapKeyFieldType(Field mapField, int nestingLevel) {
return getGenericFieldType(mapField, Map.class, 0, nestingLevel);
}
......@@ -116,7 +116,7 @@ public abstract class GenericCollectionTypeResolver {
* @param mapField the map field to introspect
* @return the generic type, or <code>null</code> if none
*/
public static Class getMapValueFieldType(Field mapField) {
public static Class<?> getMapValueFieldType(Field mapField) {
return getGenericFieldType(mapField, Map.class, 1, 1);
}
......@@ -128,7 +128,7 @@ public abstract class GenericCollectionTypeResolver {
* nested List, whereas 2 would indicate the element of the nested List)
* @return the generic type, or <code>null</code> if none
*/
public static Class getMapValueFieldType(Field mapField, int nestingLevel) {
public static Class<?> getMapValueFieldType(Field mapField, int nestingLevel) {
return getGenericFieldType(mapField, Map.class, 1, nestingLevel);
}
......@@ -137,7 +137,7 @@ public abstract class GenericCollectionTypeResolver {
* @param methodParam the method parameter specification
* @return the generic type, or <code>null</code> if none
*/
public static Class getCollectionParameterType(MethodParameter methodParam) {
public static Class<?> getCollectionParameterType(MethodParameter methodParam) {
return getGenericParameterType(methodParam, Collection.class, 0);
}
......@@ -146,7 +146,7 @@ public abstract class GenericCollectionTypeResolver {
* @param methodParam the method parameter specification
* @return the generic type, or <code>null</code> if none
*/
public static Class getMapKeyParameterType(MethodParameter methodParam) {
public static Class<?> getMapKeyParameterType(MethodParameter methodParam) {
return getGenericParameterType(methodParam, Map.class, 0);
}
......@@ -155,7 +155,7 @@ public abstract class GenericCollectionTypeResolver {
* @param methodParam the method parameter specification
* @return the generic type, or <code>null</code> if none
*/
public static Class getMapValueParameterType(MethodParameter methodParam) {
public static Class<?> getMapValueParameterType(MethodParameter methodParam) {
return getGenericParameterType(methodParam, Map.class, 1);
}
......@@ -164,7 +164,7 @@ public abstract class GenericCollectionTypeResolver {
* @param method the method to check the return type for
* @return the generic type, or <code>null</code> if none
*/
public static Class getCollectionReturnType(Method method) {
public static Class<?> getCollectionReturnType(Method method) {
return getGenericReturnType(method, Collection.class, 0, 1);
}
......@@ -178,7 +178,7 @@ public abstract class GenericCollectionTypeResolver {
* nested List, whereas 2 would indicate the element of the nested List)
* @return the generic type, or <code>null</code> if none
*/
public static Class getCollectionReturnType(Method method, int nestingLevel) {
public static Class<?> getCollectionReturnType(Method method, int nestingLevel) {
return getGenericReturnType(method, Collection.class, 0, nestingLevel);
}
......@@ -187,7 +187,7 @@ public abstract class GenericCollectionTypeResolver {
* @param method the method to check the return type for
* @return the generic type, or <code>null</code> if none
*/
public static Class getMapKeyReturnType(Method method) {
public static Class<?> getMapKeyReturnType(Method method) {
return getGenericReturnType(method, Map.class, 0, 1);
}
......@@ -199,7 +199,7 @@ public abstract class GenericCollectionTypeResolver {
* nested List, whereas 2 would indicate the element of the nested List)
* @return the generic type, or <code>null</code> if none
*/
public static Class getMapKeyReturnType(Method method, int nestingLevel) {
public static Class<?> getMapKeyReturnType(Method method, int nestingLevel) {
return getGenericReturnType(method, Map.class, 0, nestingLevel);
}
......@@ -208,7 +208,7 @@ public abstract class GenericCollectionTypeResolver {
* @param method the method to check the return type for
* @return the generic type, or <code>null</code> if none
*/
public static Class getMapValueReturnType(Method method) {
public static Class<?> getMapValueReturnType(Method method) {
return getGenericReturnType(method, Map.class, 1, 1);
}
......@@ -220,7 +220,7 @@ public abstract class GenericCollectionTypeResolver {
* nested List, whereas 2 would indicate the element of the nested List)
* @return the generic type, or <code>null</code> if none
*/
public static Class getMapValueReturnType(Method method, int nestingLevel) {
public static Class<?> getMapValueReturnType(Method method, int nestingLevel) {
return getGenericReturnType(method, Map.class, 1, nestingLevel);
}
......@@ -233,7 +233,7 @@ public abstract class GenericCollectionTypeResolver {
* 0 for Map keys, 1 for Map values)
* @return the generic type, or <code>null</code> if none
*/
private static Class getGenericParameterType(MethodParameter methodParam, Class source, int typeIndex) {
private static Class<?> getGenericParameterType(MethodParameter methodParam, Class<?> source, int typeIndex) {
return extractType(methodParam, GenericTypeResolver.getTargetType(methodParam),
source, typeIndex, methodParam.getNestingLevel(), 1);
}
......@@ -247,7 +247,7 @@ public abstract class GenericCollectionTypeResolver {
* @param nestingLevel the nesting level of the target type
* @return the generic type, or <code>null</code> if none
*/
private static Class getGenericFieldType(Field field, Class source, int typeIndex, int nestingLevel) {
private static Class<?> getGenericFieldType(Field field, Class<?> source, int typeIndex, int nestingLevel) {
return extractType(null, field.getGenericType(), source, typeIndex, nestingLevel, 1);
}
......@@ -260,7 +260,7 @@ public abstract class GenericCollectionTypeResolver {
* @param nestingLevel the nesting level of the target type
* @return the generic type, or <code>null</code> if none
*/
private static Class getGenericReturnType(Method method, Class source, int typeIndex, int nestingLevel) {
private static Class<?> getGenericReturnType(Method method, Class<?> source, int typeIndex, int nestingLevel) {
return extractType(null, method.getGenericReturnType(), source, typeIndex, nestingLevel, 1);
}
......@@ -268,14 +268,14 @@ public abstract class GenericCollectionTypeResolver {
* Extract the generic type from the given Type object.
* @param methodParam the method parameter specification
* @param type the Type to check
* @param source the source collection/map Class that we check
* @param source the source collection/map Class<?> that we check
* @param typeIndex the index of the actual type argument
* @param nestingLevel the nesting level of the target type
* @param currentLevel the current nested level
* @return the generic type as Class, or <code>null</code> if none
*/
private static Class extractType(
MethodParameter methodParam, Type type, Class source, int typeIndex, int nestingLevel, int currentLevel) {
private static Class<?> extractType(
MethodParameter methodParam, Type type, Class<?> source, int typeIndex, int nestingLevel, int currentLevel) {
Type resolvedType = type;
if (type instanceof TypeVariable && methodParam != null && methodParam.typeVariableMap != null) {
......@@ -306,8 +306,8 @@ public abstract class GenericCollectionTypeResolver {
* @param currentLevel the current nested level
* @return the generic type as Class, or <code>null</code> if none
*/
private static Class extractTypeFromParameterizedType(MethodParameter methodParam,
ParameterizedType ptype, Class source, int typeIndex, int nestingLevel, int currentLevel) {
private static Class<?> extractTypeFromParameterizedType(MethodParameter methodParam,
ParameterizedType ptype, Class<?> source, int typeIndex, int nestingLevel, int currentLevel) {
if (!(ptype.getRawType() instanceof Class)) {
return null;
......@@ -371,28 +371,28 @@ public abstract class GenericCollectionTypeResolver {
}
/**
* Extract the generic type from the given Class object.
* @param clazz the Class to check
* Extract the generic type from the given Class<?> object.
* @param clazz the Class<?> to check
* @param source the expected raw source type (can be <code>null</code>)
* @param typeIndex the index of the actual type argument
* @return the generic type as Class, or <code>null</code> if none
*/
private static Class extractTypeFromClass(Class clazz, Class source, int typeIndex) {
private static Class<?> extractTypeFromClass(Class clazz, Class<?> source, int typeIndex) {
return extractTypeFromClass(null, clazz, source, typeIndex, 1, 1);
}
/**
* Extract the generic type from the given Class object.
* Extract the generic type from the given Class<?> object.
* @param methodParam the method parameter specification
* @param clazz the Class to check
* @param clazz the Class<?> to check
* @param source the expected raw source type (can be <code>null</code>)
* @param typeIndex the index of the actual type argument
* @param nestingLevel the nesting level of the target type
* @param currentLevel the current nested level
* @return the generic type as Class, or <code>null</code> if none
*/
private static Class extractTypeFromClass(
MethodParameter methodParam, Class clazz, Class source, int typeIndex, int nestingLevel, int currentLevel) {
private static Class<?> extractTypeFromClass(
MethodParameter methodParam, Class<?> clazz, Class<?> source, int typeIndex, int nestingLevel, int currentLevel) {
if (clazz.getName().startsWith("java.util.")) {
return null;
......@@ -407,7 +407,7 @@ public abstract class GenericCollectionTypeResolver {
if (ifc instanceof ParameterizedType) {
rawType = ((ParameterizedType) ifc).getRawType();
}
if (rawType instanceof Class && isIntrospectionCandidate((Class) rawType)) {
if (rawType instanceof Class<?> && isIntrospectionCandidate((Class) rawType)) {
return extractType(methodParam, ifc, source, typeIndex, nestingLevel, currentLevel);
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册