我试图使用getMethod()
public Method getMethod(String name, Class<?>... parameterTypes) throws NoSuchMethodException, SecurityException
第二个论点是什么意思? 例如,如果我要设置两个参数,该怎么办?
答案 0 :(得分:1)
在Java中,您可以通过名称和签名来识别方法参数的顺序,计数和类型。这就是第二个论点的意思。
方法重载意味着您至少有两个(或更多)具有相同名称但签名不同的方法。使用Java反射代码,您必须指定参数类型。这是通过varargs-argument完成的,例如:
Method m = getMethod("xyz", Integer.class, String.class);
指的是:
{modifiers} {return type} xyz(Integer arg1, String arg2);
答案 1 :(得分:1)
第二个参数指定变量参数。这意味着您可以提供指定类型的任何参数列表。当您在方法体中访问它时,它只是一个数组。它只是语法糖。
final Method method = clazz.getMethod("methodName", String.class, Integer.class);