blob: 0693836c4e1f82279c6ffb5aa49e5f1bf0782eda [file] [log] [blame]
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);
}
}