In Java, a method can receive a variable number of arguments if its signature contains an argument of the varargs type.
For example, the plantation() method takes a variable number of arguments, for example, Seed... seeds:
public class Melon {
...
public void plantation(String type, Seed...seeds) {}
...
}
Now, the Java Reflection API can tell whether this method supports a variable number of arguments via the Method.isVarArgs() method, as follows:
Class<Melon> clazz = Melon.class;
Method[] methods = clazz.getDeclaredMethods();
for (Method method: methods) {
System.out.println("Method name: " + method.getName()
+ " varargs? " + method.isVarArgs());
}
You will receive output similar to the following:
Method name: plantation, varargs? true
Method name: getWeight, varargs? false
Method name: toString, varargs? false
Method name: getType, varargs? false