September 2019
Intermediate to advanced
816 pages
18h 47m
English
Let's assume that we have the following Melon class:
public class Melon { ... public Melon() {} public List<Melon> cultivate( String type, Seed seed, int noOfSeeds) { System.out.println("The cultivate() method was invoked ..."); return Collections.nCopies(noOfSeeds, new Melon("Gac", 5)); } ...}
Our goal is to invoke the cultivate() method and obtain the return via the Java Reflection API.
First, let's fetch the cultivate() method as a Method via Method.getDeclaredMethod(). All we have to do is pass the name of the method (in this case, cultivate()) and the right types of parameters (String, Seed, and int) to getDeclaredMethod(). Second argument of getDeclaredMethod() is a varargs of Class<?> type, therefore, ...