This example demonstrate using reflection to invoke methods of a class object. When using this method we need to catch for the NoSuchMethodException, IllegalAccessException and InvocationTargetException.
package org.best.example.lang;
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
public class InvokingMethod {
public static void main(String[] args) {
InvokingMethod object = new InvokingMethod();
Class clazz = object.getClass();
try {
//
// Invoking the add(int, int) method
//
Method method = clazz.getMethod("add", new Class[] {int.class, int.class});
Object result = method.invoke(object, new Object[] {10, 10});
System.out.println("Result = " + result);
//
// Invoking the multiply(int, int) method
//
method = clazz.getMethod("multiply", new Class[] {int.class, int.class});
result = method.invoke(object, new Object[] {10, 10});
System.out.println("Result = " + result);
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
public int add(int numberA, int numberB) {
return numberA + numberB;
}
public int multiply(int numberA, int numberB) {
return numberA * numberB;
}
public double div(int numberA, int numberB) {
return numberA / numberB;
}
}
No comments:
Post a Comment