diff options
author | Pete Bentley <prb@google.com> | 2021-03-03 14:33:07 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2021-03-03 14:33:07 +0000 |
commit | a9a7715d84046efd231e038b0dc2f551daf61701 (patch) | |
tree | 10923530939981dd1dc5f44ceb6316fb9442428a /src/main/java/org/junit/internal/Classes.java | |
parent | 138b64feb682b90292d36002f3aff9869d6a9e4b (diff) | |
parent | c7a6d4ec7defd99aab81c3add6e2916629a79a24 (diff) | |
download | junit-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.java | 28 |
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);
}
}
|