| package org.junit.internal; |
| |
| import static java.lang.Thread.currentThread; |
| |
| /** |
| * Miscellaneous functions dealing with classes. |
| */ |
| public class Classes { |
| |
| /** |
| * Do not instantiate. |
| * @deprecated will be private soon. |
| */ |
| @Deprecated |
| public Classes() { |
| } |
| |
| /** |
| * Returns Class.forName for {@code className} using the current thread's class loader. |
| * If the current thread does not have a class loader, falls back to the class loader for |
| * {@link Classes}. |
| * |
| * @param className Name of the class. |
| * @throws ClassNotFoundException |
| */ |
| public static Class<?> getClass(String className) throws ClassNotFoundException { |
| return getClass(className, Classes.class); |
| } |
| |
| /** |
| * Returns Class.forName for {@code className} using the current thread's class loader. |
| * If the current thread does not have a class loader, falls back to the class loader for the |
| * passed-in class. |
| * |
| * @param className Name of the class. |
| * @param callingClass Class that is requesting a the class |
| * @throws ClassNotFoundException |
| * @since 4.13 |
| */ |
| public static Class<?> getClass(String className, Class<?> callingClass) throws ClassNotFoundException { |
| ClassLoader classLoader = currentThread().getContextClassLoader(); |
| return Class.forName(className, true, classLoader == null ? callingClass.getClassLoader() : classLoader); |
| } |
| } |