Java Method Call invoke(Object obj, String methodName, Class argType, Object arg)

Here you can find the source of invoke(Object obj, String methodName, Class argType, Object arg)

Description

Call a method on the object with one argument.

License

Open Source License

Parameter

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.

Return

the object returned by the method

Declaration

public static Object invoke(Object obj, String methodName, Class argType, Object arg) 

Method Source Code

//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);
    }
}

Related

  1. invoke(Object obj, String method, Class[] params, Object[] args)
  2. invoke(Object obj, String method, Class[] params, Object[] args)
  3. invoke(Object obj, String method, Object param, Object paramType)
  4. invoke(Object obj, String methodName)
  5. invoke(Object obj, String methodName, boolean newValue)
  6. invoke(Object obj, String methodName, Class clazz, Object newValue)
  7. invoke(Object obj, String methodName, Class[] parameterTypes, Object[] args)
  8. invoke(Object obj, String methodName, Object... args)
  9. invoke(Object obj, String methodName, Object... params)