Oct 23

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: , ,

Oct 23

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: , ,

Mar 14

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: , ,