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); | |
} | |
} |