aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/junit/internal/Classes.java
diff options
context:
space:
mode:
authorPete Bentley <prb@google.com>2021-03-03 14:33:07 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-03-03 14:33:07 +0000
commita9a7715d84046efd231e038b0dc2f551daf61701 (patch)
tree10923530939981dd1dc5f44ceb6316fb9442428a /src/main/java/org/junit/internal/Classes.java
parent138b64feb682b90292d36002f3aff9869d6a9e4b (diff)
parentc7a6d4ec7defd99aab81c3add6e2916629a79a24 (diff)
downloadjunit-a9a7715d84046efd231e038b0dc2f551daf61701.tar.gz
Merge changes I578a2676,I4b37c2d0,Id1e2d638,I1ebe37da,I6135799c am: b6446bec0a am: fcd81b3e3f am: c7a6d4ec7d
Original change: https://android-review.googlesource.com/c/platform/external/junit/+/1613132 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: Ie1a9bf8405e1b57da206312f5694e8c3ff5ce613
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);
}
}