Here you can find the source of invokeOrBailOut(Object invokee, Method method, Object[] params)
Parameter | Description |
---|---|
method | a parameter |
params | a parameter |
private static Object invokeOrBailOut(Object invokee, Method method, Object[] params)
//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(); } }