java.lang.reflect.Method.getGenericParameterTypes()方法的使用及代码示例

x33g5p2x  于2022-01-16 转载在 其他  
字(6.2k)|赞(0)|评价(0)|浏览(187)

本文整理了Java中java.lang.reflect.Method.getGenericParameterTypes()方法的一些代码示例,展示了Method.getGenericParameterTypes()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Method.getGenericParameterTypes()方法的具体详情如下:
包路径:java.lang.reflect.Method
类名称:Method
方法名:getGenericParameterTypes

Method.getGenericParameterTypes介绍

[英]Returns an array of Type objects that represent the formal parameter types, in declaration order, of the method represented by this Method object. Returns an array of length 0 if the underlying method takes no parameters.

If a formal parameter type is a parameterized type, the Type object returned for it must accurately reflect the actual type parameters used in the source code.

If a formal parameter type is a type variable or a parameterized type, it is created. Otherwise, it is resolved.
[中]返回类型对象数组,这些对象按声明顺序表示此方法对象表示的方法的形式参数类型。如果基础方法不接受任何参数,则返回长度为0的数组。
如果形式参数类型是参数化类型,则为其返回的类型对象必须准确反映源代码中使用的实际类型参数。
如果形式参数类型是类型变量或参数化类型,则会创建它。否则,问题就解决了。

代码示例

代码示例来源:origin: google/guava

@Override
Type[] getGenericParameterTypes() {
 return method.getGenericParameterTypes();
}

代码示例来源:origin: jenkinsci/jenkins

public Type[] genericTypes() {
  if (genericTypes==null)
    genericTypes = method.getGenericParameterTypes();
  return genericTypes;
}

代码示例来源:origin: prestodb/presto

@Override
Type[] getGenericParameterTypes() {
 return method.getGenericParameterTypes();
}

代码示例来源:origin: stackoverflow.com

Method method = ...
assertTrue(method.getParameterTypes() != method.getGenericParameterTypes());

Field field = ...
assertTrue(field.getFieldType() == String.class);
assertTrue(field.getGenericFieldType() == Integer.class);

代码示例来源:origin: square/retrofit

Builder(Retrofit retrofit, Method method) {
 this.retrofit = retrofit;
 this.method = method;
 this.methodAnnotations = method.getAnnotations();
 this.parameterTypes = method.getGenericParameterTypes();
 this.parameterAnnotationsArray = method.getParameterAnnotations();
}

代码示例来源:origin: prestodb/presto

@Deprecated // since 2.7
public Type[] getGenericParameterTypes() {
  return _method.getGenericParameterTypes();
}

代码示例来源:origin: apache/flink

public LambdaExecutable(Method method) {
  this.parameterTypes = method.getGenericParameterTypes();
  this.returnType = method.getGenericReturnType();
  this.name = method.getName();
  this.executable = method;
}

代码示例来源:origin: ctripcorp/apollo

public SpringValue(String key, String placeholder, Object bean, String beanName, Method method, boolean isJson) {
 this.beanRef = new WeakReference<>(bean);
 this.beanName = beanName;
 this.methodParameter = new MethodParameter(method, 0);
 this.key = key;
 this.placeholder = placeholder;
 Class<?>[] paramTps = method.getParameterTypes();
 this.targetType = paramTps[0];
 this.isJson = isJson;
 if(isJson){
  this.genericType = method.getGenericParameterTypes()[0];
 }
}

代码示例来源:origin: prestodb/presto

@Override
public JavaType getParameterType(int index) {
  Type[] types = _method.getGenericParameterTypes();
  if (index >= types.length) {
    return null;
  }
  return _typeContext.resolveType(types[index]);
}

代码示例来源:origin: redisson/redisson

@Override
public JavaType getParameterType(int index) {
  Type[] types = _method.getGenericParameterTypes();
  if (index >= types.length) {
    return null;
  }
  return _typeContext.resolveType(types[index]);
}

代码示例来源:origin: junit-team/junit4

void validate(List<Throwable> errors) {
  for (Type each : method.getGenericParameterTypes()) {
    validateNoTypeParameterOnType(each, errors);
  }
}

代码示例来源:origin: google/guava

static TypeVariable<?> getTypeVariable(String methodName) throws Exception {
  ParameterizedType parameterType =
    (ParameterizedType)
      WithTypeVariable.class.getDeclaredMethod(methodName, List.class)
        .getGenericParameterTypes()[0];
  return (TypeVariable<?>) parameterType.getActualTypeArguments()[0];
 }
}

代码示例来源:origin: google/guava

static WildcardType getWildcardType(String methodName) throws Exception {
  ParameterizedType parameterType =
    (ParameterizedType)
      WithWildcardType.class.getDeclaredMethod(methodName, List.class)
        .getGenericParameterTypes()[0];
  return (WildcardType) parameterType.getActualTypeArguments()[0];
 }
}

代码示例来源:origin: google/guava

private Type getOnlyParameterType() {
 assertThat(method.getGenericParameterTypes()).hasLength(1);
 return method.getGenericParameterTypes()[0];
}

代码示例来源:origin: google/guava

static void verifyConsitentRawType() {
  for (Method method : RawTypeConsistencyTester.class.getDeclaredMethods()) {
   assertEquals(
     method.getReturnType(), TypeToken.of(method.getGenericReturnType()).getRawType());
   for (int i = 0; i < method.getParameterTypes().length; i++) {
    assertEquals(
      method.getParameterTypes()[i],
      TypeToken.of(method.getGenericParameterTypes()[i]).getRawType());
   }
  }
 }
}

代码示例来源:origin: google/guava

Type getTargetType(String methodName) throws Exception {
  ParameterizedType parameterType =
    (ParameterizedType)
      WithGenericBound.class.getDeclaredMethod(methodName, List.class)
        .getGenericParameterTypes()[0];
  parameterType =
    (ParameterizedType) TypeToken.of(this.getClass()).resolveType(parameterType).getType();
  return parameterType.getActualTypeArguments()[0];
 }
}

代码示例来源:origin: square/dagger

@Override public void attach(Linker linker) {
 Type[] types = method.getGenericParameterTypes();
 Annotation[][] annotations = method.getParameterAnnotations();
 parameters = new Binding[types.length];
 for (int i = 0; i < parameters.length; i++) {
  String key = Keys.get(types[i], annotations[i], method + " parameter " + i);
  parameters[i] = linker.requestBinding(key, method, instance.getClass().getClassLoader());
 }
}

代码示例来源:origin: redisson/redisson

@Override
@CachedReturnPlugin.Enhance("resolved")
protected Generic resolve() {
  java.lang.reflect.Type[] type = method.getGenericParameterTypes();
  return erasure.length == type.length
      ? Sort.describe(type[index], getAnnotationReader())
      : OfNonGenericType.ForLoadedType.of(erasure[index]);
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void forMethodParameterByIndex() throws Exception {
  Method method = Methods.class.getMethod("charSequenceParameter", List.class);
  ResolvableType type = ResolvableType.forMethodParameter(method, 0);
  assertThat(type.getType(), equalTo(method.getGenericParameterTypes()[0]));
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void forMethodParameter() throws Exception {
  Method method = Methods.class.getMethod("charSequenceParameter", List.class);
  MethodParameter methodParameter = MethodParameter.forExecutable(method, 0);
  ResolvableType type = ResolvableType.forMethodParameter(methodParameter);
  assertThat(type.getType(), equalTo(method.getGenericParameterTypes()[0]));
}

相关文章

微信公众号

最新文章

更多