Invokes a method, masking with a runtime exception all the exceptions.
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class Main { /** * Invokes a method, masking with a runtime exception all the exceptions. * * @param obj The object from which a method will be called. * @param method The method to call. * @param args The arguments of the method. * @return The object returned, if the method is not "void". * @since 2.0.7 */ public static Object invokeMethod(Object obj, Method method, Object... args) { try { return method.invoke(obj, args); } catch (IllegalArgumentException e) { throw new RuntimeException("The arguments for '" + method.getName() + "' in class '" + obj.getClass().getName() + "' are not valid", e); } catch (IllegalAccessException e) { throw new RuntimeException("Cannot access '" + method.getName() + "' in class '" + obj.getClass().getName() + "'", e); } catch (InvocationTargetException e) { throw new RuntimeException( "An exception has been thrown inside '" + method.getName() + "' in class '" + obj.getClass().getName() + "'", e); } } }