当前位置: 首页>>代码示例>>Java>>正文


Java Parameter.getParameterizedType方法代码示例

本文整理汇总了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);
	}
}
 
开发者ID:wujiangchao,项目名称:chopsticks,代码行数:26,代码来源:MethodArgument.java

示例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);
		}
	}
}
 
开发者ID:damianwajser,项目名称:spring-rest-commons-options,代码行数:25,代码来源:ReflectionUtils.java

示例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);
}
 
开发者ID:siy,项目名称:booter-injector,代码行数:28,代码来源:Key.java


注:本文中的java.lang.reflect.Parameter.getParameterizedType方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。