Java Method Call invokeOrBailOut(Object invokee, Method method, Object[] params)

Here you can find the source of invokeOrBailOut(Object invokee, Method method, Object[] params)

Description

Utility method that invokes a method and does the error handling around the invocation.

License

Apache License

Parameter

Parameter Description
method a parameter
params a parameter

Return

the result of the method invocation.

Declaration

private static Object invokeOrBailOut(Object invokee, Method method,
        Object[] params) 

Method Source Code

//package com.java2s;
/*//  www . j ava  2s .c  o m
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations
 * under the License.
 */

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class Main {
    /**
     * Utility method that invokes a method and does the error handling around
     * the invocation.
     *
     * @param method
     * @param params
     * @return the result of the method invocation.
     */
    private static Object invokeOrBailOut(Object invokee, Method method,
            Object[] params) {
        try {
            return method.invoke(invokee, params);
        } catch (IllegalArgumentException e) {
            throw new Error(createMessage(invokee, method, params), e);
        } catch (IllegalAccessException e) {
            throw new Error(createMessage(invokee, method, params), e);
        } catch (InvocationTargetException e) {
            throw new Error(createMessage(invokee, method, params), e);
        }
    }

    private static String createMessage(Object invokee, Method method,
            Object[] params) {
        StringBuilder sb = new StringBuilder();
        sb.append("This should never happen. Tried to invoke:\n");
        sb.append(invokee.getClass().getName());
        sb.append("#");
        sb.append(method.getName());
        sb.append("(");
        for (Object o : params) {
            sb.append(o.getClass().getSimpleName());
            sb.append(' ');
            sb.append(o);
            sb.append(' ');
        }
        sb.append(")");
        return sb.toString();
    }
}

Related

  1. invokeNoArgs(Object instance, Method method, Class returnType)
  2. invokeNoArgsMethod(Object object, String methodName)
  3. invokeNonAccessibleMethod(Class clazz, String methodName, Object instance, Object... params)
  4. invokeNonArgMethod(Object object, String methodName)
  5. invokeObjectMethod(Object object, String name, Class paramTypes[], Object args[])
  6. invokeParameterlessMethod(T theObject, String methodName)
  7. invokePrepare(Object instance)
  8. invokePrimivite(Object entity, Method writeMethod, Class propertyType, String propertyValue)
  9. invokePrivate(Class clazz, Object instance, String methodName, Class[] argTypes, Object[] args)