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

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

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

Method.getParameterTypes介绍

[英]Returns an array of Class 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.
[中]

代码示例

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

protected final Class<?> getResourceType() {
  if (this.isField) {
    return ((Field) this.member).getType();
  }
  else if (this.pd != null) {
    return this.pd.getPropertyType();
  }
  else {
    return ((Method) this.member).getParameterTypes()[0];
  }
}

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

/**
 * Create a new RemoteInvocation for the given AOP method invocation.
 * @param methodInvocation the AOP invocation to convert
 */
public RemoteInvocation(MethodInvocation methodInvocation) {
  this.methodName = methodInvocation.getMethod().getName();
  this.parameterTypes = methodInvocation.getMethod().getParameterTypes();
  this.arguments = methodInvocation.getArguments();
}

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

/**
 * Check whether the given method corresponds to the container's currently invoked
 * factory method. Compares method name and parameter types only in order to work
 * around a potential problem with covariant return types (currently only known
 * to happen on Groovy classes).
 */
private boolean isCurrentlyInvokedFactoryMethod(Method method) {
  Method currentlyInvoked = SimpleInstantiationStrategy.getCurrentlyInvokedFactoryMethod();
  return (currentlyInvoked != null && method.getName().equals(currentlyInvoked.getName()) &&
      Arrays.equals(method.getParameterTypes(), currentlyInvoked.getParameterTypes()));
}

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

public static boolean isCandidateWriteMethod(Method method) {
  String methodName = method.getName();
  Class<?>[] parameterTypes = method.getParameterTypes();
  int nParams = parameterTypes.length;
  return (methodName.length() > 3 && methodName.startsWith("set") && Modifier.isPublic(method.getModifiers()) &&
      (!void.class.isAssignableFrom(method.getReturnType()) || Modifier.isStatic(method.getModifiers())) &&
      (nParams == 1 || (nParams == 2 && int.class == parameterTypes[0])));
}

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

/** Determines whether the given method takes a Guard as its first parameter. */
private static boolean isGuarded(Method method) {
 Class<?>[] parameterTypes = method.getParameterTypes();
 return parameterTypes.length >= 1 && parameterTypes[0] == Monitor.Guard.class;
}

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

/** Determines whether the given method takes a time and unit as its last two parameters. */
private static boolean isTimed(Method method) {
 Class<?>[] parameterTypes = method.getParameterTypes();
 return parameterTypes.length >= 2
   && parameterTypes[parameterTypes.length - 2] == long.class
   && parameterTypes[parameterTypes.length - 1] == TimeUnit.class;
}

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

/**
 * Check whether the given method is declared on any of the given interfaces.
 */
private static boolean implementsInterface(Method method, Set<Class<?>> ifcs) {
  for (Class<?> ifc : ifcs) {
    if (ClassUtils.hasMethod(ifc, method.getName(), method.getParameterTypes())) {
      return true;
    }
  }
  return false;
}

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

/**
 * Create an array of descriptors representing the parameter types for the supplied
 * method. Returns a zero sized array if there are no parameters.
 * @param method a Method
 * @return a String array of descriptors, one entry for each method parameter
 */
public static String[] toParamDescriptors(Method method) {
  return toDescriptors(method.getParameterTypes());
}

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

private static Object[] getParameterValues(Method method) {
 FreshValueGenerator paramValues = new FreshValueGenerator();
 final List<Object> passedArgs = Lists.newArrayList();
 for (Class<?> paramType : method.getParameterTypes()) {
  passedArgs.add(paramValues.generateFresh(paramType));
 }
 return passedArgs.toArray();
}

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

/**
 * Verifies that {@code method} produces a {@link NullPointerException} or {@link
 * UnsupportedOperationException} whenever <i>any</i> of its non-nullable parameters are null.
 *
 * @param instance the instance to invoke {@code method} on, or null if {@code method} is static
 */
public void testMethod(@Nullable Object instance, Method method) {
 Class<?>[] types = method.getParameterTypes();
 for (int nullIndex = 0; nullIndex < types.length; nullIndex++) {
  testMethodParameter(instance, method, nullIndex);
 }
}

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

@Override
  public boolean matches(Method method, Class<?> targetClass) {
    return method.getParameterCount() == 1 &&
      method.getParameterTypes()[0].equals(Integer.class);
  }
},

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

@Override
@Nullable
public Object convert(@Nullable Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {
  if (source == null) {
    return null;
  }
  Method finder = getFinder(targetType.getType());
  Assert.state(finder != null, "No finder method");
  Object id = this.conversionService.convert(
      source, sourceType, TypeDescriptor.valueOf(finder.getParameterTypes()[0]));
  return ReflectionUtils.invokeMethod(finder, source, id);
}

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

@Override
 public int compare(Method m1, Method m2) {
  int nameComparison = m1.getName().compareTo(m2.getName());
  if (nameComparison != 0) {
   return nameComparison;
  } else {
   return Ints.compare(m1.getParameterTypes().length, m2.getParameterTypes().length);
  }
 }
});

代码示例来源: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

private static Object[] arbitraryParameters(Method method) {
 Class<?>[] parameterTypes = method.getParameterTypes();
 Object[] params = new Object[parameterTypes.length];
 for (int i = 0; i < parameterTypes.length; i++) {
  params[i] = PARAMETER_VALUES.get(parameterTypes[i]);
 }
 return params;
}

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

/**
 * Filter on methods with the given parameter types.
 */
public Builder<T> argTypes(Class<?>... argTypes) {
  addFilter("argTypes=" + Arrays.toString(argTypes), method ->
      ObjectUtils.isEmpty(argTypes) ? method.getParameterCount() == 0 :
          Arrays.equals(method.getParameterTypes(), argTypes));
  return this;
}

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

/**
 * Filter on methods with the given parameter types.
 */
public Builder<T> argTypes(Class<?>... argTypes) {
  addFilter("argTypes=" + Arrays.toString(argTypes), method ->
      ObjectUtils.isEmpty(argTypes) ? method.getParameterCount() == 0 :
          Arrays.equals(method.getParameterTypes(), argTypes));
  return this;
}

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

private static MethodParameter getMethodParameter(Class<?> parameterType) {
  Method method = ClassUtils.getMethod(TestBean.class, "handle", (Class<?>[]) null);
  for (int i=0; i < method.getParameterCount(); i++) {
    if (parameterType.equals(method.getParameterTypes()[i])) {
      return new MethodParameter(method, i);
    }
  }
  throw new IllegalArgumentException("Parameter type not found: " + parameterType);
}

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

MethodSignature(Method method) {
 name = method.getName();
 parameterTypes = Arrays.asList(method.getParameterTypes());
 typeSignature = new TypeSignature(method.getTypeParameters());
}

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

@Override
public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) {
  Method finder = getFinder(targetType.getType());
  return (finder != null &&
      this.conversionService.canConvert(sourceType, TypeDescriptor.valueOf(finder.getParameterTypes()[0])));
}

相关文章

微信公众号

最新文章

更多