Useful snippets of code

As a bonus, let's look at several snippets of code that are commonly needed when working with reflection and constructors.

First, let's fetch the number of available constructors:

Class<Car> clazz = Car.class;
Constructor<?>[] cnstrs = clazz.getConstructors();
System.out.println("Car class has "
+ cnstrs.length + " constructors"); // 4

Now, let's see how many parameters have each of these four constructors:

for (Constructor<?> cnstr : cnstrs) {
int paramCount = cnstr.getParameterCount();
System.out.println(" Constructor with "
+ paramCount + " parameters");
}

In order to get details about each parameter of a constructor, we can call Constructor.getParameters(). This method returns an array of Parameter (this class was added in JDK 8 and it provides a comprehensive list of methods for dissecting a parameter):

for (Constructor<?> cnstr : cnstrs) {
Parameter[] params = cnstr.getParameters();
...
}

If we just need to know the types of the parameters, then Constructor.getParameterTypes() will do the job:

for (Constructor<?> cnstr : cnstrs) {
Class<?>[] typesOfParams = cnstr.getParameterTypes();
...
}
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.137.178.9