Utils { public static <T> T createFirst(String... classNames) { for (String className : classNames) { try { return (T) Class.forName(className).newInstance(); } catch (Throwable t) { } } return null; }  static Map<Throwable, AutomonExpirable> createExceptionMap(); static String getLabel(Throwable throwable); static String getLabel(JoinPoint.StaticPart jp); static String formatExceptionForToolsWithLimitedCharacterSet(String exceptionLabel); static List<String> getArgNameValuePairs(JoinPoint jp); static String argNameValuePairsToString(List<String> args); static String toStringWithLimit(Object parameter); static String getExceptionTrace(Throwable exception); static String[] tokenize(String string, String splitOn); static String stripFileScheme(String fileName); static AutomonMXBean getAutomonMxBean(Object aspect); static void registerWithJmx(Object aspect, AutomonMXBean mxBean); static void unregisterWithJmx(Object aspect); static boolean hasPackageName(String className); static T createFirst(String... classNames); static void removeClassNames(List<String> list); static final String LINE_SEPARATOR; }
@Test public void shouldCreateFirstInstance() { String str = Utils.createFirst("java.lang.String"); assertThat(str).isInstanceOf(String.class); str = Utils.createFirst("i.do.not.Exist", "java.lang.String"); assertThat(str).isInstanceOf(String.class); str = Utils.createFirst("i.do.not.Exist1", "i.do.not.Exist2"); assertThat(str).isNull(); }