在Java中,是否可以知道是否已加载类?

在Java中,是否可以知道是否已加载类?,第1张

在Java中,是否可以知道是否已加载类?

(感谢Aleksi)此代码:

public class TestLoaded {     public static void main(String[] args) throws Exception {          java.lang.reflect.Method m = ClassLoader.class.getDeclaredMethod("findLoadedClass", new Class[] { String.class });          m.setAccessible(true);          ClassLoader cl = ClassLoader.getSystemClassLoader();          Object test1 = m.invoke(cl, "TestLoaded$ClassToTest");          System.out.println(test1 != null);          ClassToTest.reportLoaded();          Object test2 = m.invoke(cl, "TestLoaded$ClassToTest");          System.out.println(test2 != null);     }     static class ClassToTest {          static {    System.out.println("Loading " + ClassToTest.class.getName());          }          static void reportLoaded() {    System.out.println("Loaded");          }     }}

产生:

falseLoading TestLoaded$ClassToTestLoadedtrue

请注意,示例类不在软件包中。完整的二进制名称是必需的。

二进制名称的一个示例是

"java.security.KeyStore$Builder$FileBuilder"



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5600452.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存