One thing reflection allows you to do is call a method dynamically at runtime. The following example shows how this can be achieved
// Get the Class instance of the object we want to call method on
Class clazz = o.getClass();
// Get the method we want to call
// For this example we'll call a method with this signature
// Double doSomething(String name, Integer[] args)
Method method = clazz.getMethod("doSomething", new String{ String.class, Integer[].class);
// Now invoke the method
Double result = (Double) method.invoke(o, new Object[] {
"Test",
new Integer[] { new Integer(1), new Integer(3)});
written by objects
\\ tags: class, method, reflection
Arrays in Java are actually Objects and sometimes we need to get the Class instance for an array object. An example would be when using reflection to get a method that takes an array as an argument.
Here’s an example for getting the Class instance for a string array.
Class arrayClass = String[].class;
written by objects
\\ tags: array, class, reflection
Reflection allows you to find all the methods of a class using the Class class and it’s getMethods() methods. Clearest way to explain is with an example.
String className = "java.lang.String";
Class clazz = Class.forName(className);
Method[] methods = clazz.getMethods();
for (Method method : methods)
{
String methodName = method.getName();
System.out.println(methodName);
}
written by objects
\\ tags: class, method, reflection