本文整理汇总了Java中java.lang.reflect.Parameter.getParameterizedType方法的典型用法代码示例。如果您正苦于以下问题:Java Parameter.getParameterizedType方法的具体用法?Java Parameter.getParameterizedType怎么用?Java Parameter.getParameterizedType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类java.lang.reflect.Parameter
的用法示例。
在下文中一共展示了Parameter.getParameterizedType方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getCustomType
import java.lang.reflect.Parameter; //导入方法依赖的package包/类
private static Object getCustomType(Parameter parameter, Signature signature) throws Exception {
Class<?> argType = parameter.getType();
if (argType == Signature.class) {
return signature;
} else if (argType == Request.class) {
return signature.request();
} else if (argType == Response.class) {
return signature.response();
} else if (argType == Session.class || argType == HttpSession.class) {
return signature.request().session();
} else if (argType == FileItem.class) {
return new ArrayList<>(signature.request().fileItems().values()).get(0);
} else if (argType == ModelAndView.class) {
return new ModelAndView();
} else if (argType == Map.class) {
return signature.request().parameters();
} else if (argType == Optional.class) {
ParameterizedType firstParam = (ParameterizedType) parameter.getParameterizedType();
Type paramsOfFirstGeneric = firstParam.getActualTypeArguments()[0];
Class<?> modelType = ReflectKit.form(paramsOfFirstGeneric.getTypeName());
return Optional.ofNullable(parseModel(modelType, signature.request(), null));
} else {
return parseModel(argType, signature.request(), null);
}
}
示例2: collectParameters
import java.lang.reflect.Parameter; //导入方法依赖的package包/类
private static void collectParameters(Collection<Parameters> parameters, Parameter parameter, Annotation a,
boolean isPathVariable) {
if (a != null) {
String typeStr = parameter.getType().getSimpleName();
Type type = parameter.getParameterizedType();
if (type instanceof ParameterizedType) {
typeStr = ((Class<?>) ((ParameterizedType) type).getActualTypeArguments()[0]).getSimpleName();
}
parameters.add(new Parameters((boolean) AnnotationUtils.getValue(a, "required"),
(String) (AnnotationUtils.getValue(a).equals("") ? parameter.getName()
: AnnotationUtils.getValue(a)),
typeStr));
} else if (Pageable.class.isAssignableFrom(parameter.getType()) && !isPathVariable) {
try {
for (PropertyDescriptor propertyDescriptor : Introspector.getBeanInfo(parameter.getType())
.getPropertyDescriptors()) {
parameters.add(new Parameters(false, propertyDescriptor.getName(),
propertyDescriptor.getPropertyType().getSimpleName()));
}
} catch (IntrospectionException e) {
LOGGER.error("Problemas al obtener el Pageable: {}", parameter, e);
}
}
}
示例3: of
import java.lang.reflect.Parameter; //导入方法依赖的package包/类
/**
* Create key for single method/constructor parameter.
*
* @param parameter
* Parameter to build key for.
* @return Created key.
*/
public static Key of(Parameter parameter) {
Annotation[] annotations = parameter.getAnnotations();
if (!parameter.getType().isAssignableFrom(Supplier.class)) {
return new Key(parameter.getParameterizedType(), false,
parameter.getType(), findBindingAnnotation(annotations));
}
Type type = parameter.getParameterizedType();
if (type instanceof ParameterizedType) {
Type[] args = ((ParameterizedType) type).getActualTypeArguments();
if (args.length > 0 && args[0] instanceof Class) {
return Key.of(args[0], true, annotations);
}
}
throw new InjectorException("Unable to determine parameter type for " + parameter);
}