ReflectHelpers { public static String formatMethod(Method input) { String parameterTypes = FluentIterable.from(asList(input.getParameterTypes())) .transform(Class::getSimpleName) .join(COMMA_SEPARATOR); return String.format("%s(%s)", input.getName(), parameterTypes); }  static String formatMethod(Method input); static String formatMethodWithClass(Method input); static String formatAnnotation(Annotation annotation); static String simpleTypeDescription(Type input); static Iterable<Method> getClosureOfMethodsOnInterfaces(
      Iterable<? extends Class<?>> interfaces); static Iterable<Method> getClosureOfMethodsOnInterface(Class<?> iface); static Iterable<T> loadServicesOrdered(Class<T> iface, ClassLoader classLoader); static Iterable<T> loadServicesOrdered(Class<T> iface); static ClassLoader findClassLoader(final ClassLoader proposed); static ClassLoader findClassLoader(final Class<?>... classes); static ClassLoader findClassLoader();  }
@Test public void testMethodFormatter() throws Exception { assertEquals( "testMethodFormatter()", ReflectHelpers.formatMethod(getClass().getMethod("testMethodFormatter"))); assertEquals( "oneArg(int)", ReflectHelpers.formatMethod(getClass().getDeclaredMethod("oneArg", int.class))); assertEquals( "twoArg(String, List)", ReflectHelpers.formatMethod( getClass().getDeclaredMethod("twoArg", String.class, List.class))); }