當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。