gpt4 book ai didi

java : ClassLoaders

转载 作者:行者123 更新时间:2023-11-30 07:13:51 38 4
gpt4 key购买 nike

比如说,我有一个 A 类,由 ClassLoader CL1 加载。

我有另一个 B 类,由 ClassLoader CL2 加载。

假设这两个类现在都由各自的类加载器加载。

如果我从 A 执行以下语句,结果会是什么:B.class.getClassLoader();

它会返回 CL2 吗?请澄清。

谢谢高压

最佳答案

Will it return CL2?

如果它有权这样做,那么是的 - 为什么不呢?结果与您执行方法的类无关,它与您上执行方法的类有关(在本例中,是 B.class 由CL2加载。)

来自docs :

Returns the class loader for the class. Some implementations may use null to represent the bootstrap class loader. This method will return null in such implementations if this class was loaded by the bootstrap class loader.

If a security manager is present, and the caller's class loader is not null and the caller's class loader is not the same as or an ancestor of the class loader for the class whose class loader is requested, then this method calls the security manager's checkPermission method with a RuntimePermission("getClassLoader") permission to ensure it's ok to access the class loader for the class.

所以假设它是您加载的实际类(而不是原始类),并且安全管理器说您有权检查该类,是的 - 它将返回相应的类加载器(在本例中为 CL2。)

关于java : ClassLoaders,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19053860/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com