blob: e8404f685504047b80c767107cecdde4c81f45eb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
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);
}
}
|