Object (Object object, Object... arguments) { if (!isAvailable()) { throw new IllegalStateException("Method is not available"); } try { return myMethod.invoke(object, arguments); } catch (IllegalAccessException | InvocationTargetException e) { throw new RuntimeException(e); } }