Here you can find the source of invoke(Object obj, String methodName, Class argType, Object arg)
Parameter | Description |
---|---|
obj | the object to invoke the method on. |
methodName | the name of the method to call |
argType | the type of argument. |
arg | the value of the argument. |
public static Object invoke(Object obj, String methodName, Class argType, Object arg)
//package com.java2s; import java.lang.reflect.Method; public class Main { /**//from w w w .j a va 2 s. c o m * Call a method on the object with no parameters. * * @param obj the object to invoke the method on. * @param methodName the name of the method to call * @return the object returned by the method */ public static Object invoke(Object obj, String methodName) { try { Method method; method = obj.getClass().getMethod(methodName); return method.invoke(obj); } catch (Exception t) { throwBuildException(t); return null; // NotReached } } /** * Call a method on the object with one argument. * * @param obj the object to invoke the method on. * @param methodName the name of the method to call * @param argType the type of argument. * @param arg the value of the argument. * @return the object returned by the method */ public static Object invoke(Object obj, String methodName, Class argType, Object arg) { try { Method method; method = obj.getClass().getMethod(methodName, new Class[] { argType }); return method.invoke(obj, new Object[] { arg }); } catch (Exception t) { throwBuildException(t); return null; // NotReached } } /** * Call a method on the object with two argument. * * @param obj the object to invoke the method on. * @param methodName the name of the method to call * @param argType1 the type of the first argument. * @param arg1 the value of the first argument. * @param argType2 the type of the second argument. * @param arg2 the value of the second argument. * @return the object returned by the method */ public static Object invoke(Object obj, String methodName, Class argType1, Object arg1, Class argType2, Object arg2) { try { Method method; method = obj.getClass().getMethod(methodName, new Class[] { argType1, argType2 }); return method.invoke(obj, new Object[] { arg1, arg2 }); } catch (Exception t) { throwBuildException(t); return null; // NotReached } } /** * Get a field in an object. * * @param obj the object to look at. * @param fieldName the name of the field in the object. * @return the value of the field. * @throws BuildException if there is an error. */ public static Method getMethod(Object obj, String fieldName) { try { Method method = obj.getClass().getMethod("get" + fieldName); return method; } catch (Exception t) { return null; // NotReached } } /** * A method to convert an invocationTargetException to a buildexception and throw it. * * @param t the invocation target exception. * @throws BuildException the converted exception. */ public static void throwBuildException(Exception t) { throw new RuntimeException(t); } }