aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/junit/internal/Classes.java
diff options
context:
space:
mode:
authorPete Bentley <prb@google.com>2021-02-24 11:05:43 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-02-24 11:05:43 +0000
commit99022df227f5503b68838d97e0a6b3fa5f558f1b (patch)
tree5ae2f0fddfaf8cf38a22f2e954387f1e59ec6e1f /src/main/java/org/junit/internal/Classes.java
parent468041bf45125e9964a67db1a51cb2dbed975c69 (diff)
parent82af4b8b1d440f44b6ebac4db1fd61ae1d35a15e (diff)
downloadjunit-99022df227f5503b68838d97e0a6b3fa5f558f1b.tar.gz
Merge changes I8f5cd126,Ifdb59336,I6abae5ae,I5ec909df am: d135966357 am: d8911c6e95 am: 82af4b8b1d
Original change: https://android-review.googlesource.com/c/platform/external/junit/+/1601635 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: Ib180e48a4cc266c12a2d9238385adbb07540d3dc
Diffstat (limited to 'src/main/java/org/junit/internal/Classes.java')
-rw-r--r--src/main/java/org/junit/internal/Classes.java28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/main/java/org/junit/internal/Classes.java b/src/main/java/org/junit/internal/Classes.java
index 154603d..e8404f6 100644
--- a/src/main/java/org/junit/internal/Classes.java
+++ b/src/main/java/org/junit/internal/Classes.java
@@ -6,13 +6,39 @@ 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 Class.forName(className, true, currentThread().getContextClassLoader());
+ 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);
}
}