### Question:
ClassHelper { public static ClassLoader getClassLoader(Class<?> clazz) { ClassLoader cl = null; try { cl = Thread.currentThread().getContextClassLoader(); } catch (Throwable ex) { } if (cl == null) { cl = clazz.getClassLoader(); if (cl == null) { try { cl = ClassLoader.getSystemClassLoader(); } catch (Throwable ex) { } } } return cl; }  static Class<?> forNameWithThreadContextClassLoader(String name); static Class<?> forNameWithCallerClassLoader(String name, Class<?> caller); static ClassLoader getCallerClassLoader(Class<?> caller); static ClassLoader getClassLoader(Class<?> clazz); static ClassLoader getClassLoader(); static Class<?> forName(String name); static Class<?> forName(String name, ClassLoader classLoader); static Class<?> resolvePrimitiveClassName(String name); static String toShortString(Object obj); static String simpleClassName(Class<?> clazz); static boolean isSetter(Method method); static boolean isGetter(Method method); static boolean isPrimitive(Class<?> type); static Object convertPrimitive(Class<?> type, String value); static boolean isTypeMatch(Class<?> type, String value); static final String ARRAY_SUFFIX; }### Answer:
@Test public void testGetClassLoader1() throws Exception { ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader(); try { assertThat(getClassLoader(ClassHelperTest.class), sameInstance(oldClassLoader)); Thread.currentThread().setContextClassLoader(null); assertThat(getClassLoader(ClassHelperTest.class), sameInstance(ClassHelperTest.class.getClassLoader())); } finally { Thread.currentThread().setContextClassLoader(oldClassLoader); } }
@Test public void testGetClassLoader2() throws Exception { assertThat(getClassLoader(), sameInstance(ClassHelper.class.getClassLoader())); }