getClassloader returns null 而不是 bootstrap 类加载器
getClassloader returns null instead of the bootstrap classloader
众所周知,来自 rt.jar 库的 classes 是通过 Bootstrap 类加载器加载的。
java.lang 是 rt.jar 库的一部分。
然而,这个样本
System.out.println(ArrayList.class.getClassLoader());
打印 null
而不是 BootstrapClassLoader
.
另外,我知道BootstrapClassLoader不是写在Java里面的。
会是这个原因吗?
我如何确保 class 由 BootstrapCL 加载?
Class#getClassLoader
文档明确警告您注意这种情况。
Returns the class loader for the class.
Some implementations may use
null to represent the bootstrap class loader.
记得经常查看相关的 JavaDoc。这对一切都有效,有时它可能是救命稻草。
众所周知,来自 rt.jar 库的 classes 是通过 Bootstrap 类加载器加载的。 java.lang 是 rt.jar 库的一部分。
然而,这个样本
System.out.println(ArrayList.class.getClassLoader());
打印 null
而不是 BootstrapClassLoader
.
另外,我知道BootstrapClassLoader不是写在Java里面的。 会是这个原因吗? 我如何确保 class 由 BootstrapCL 加载?
Class#getClassLoader
文档明确警告您注意这种情况。
Returns the class loader for the class.
Some implementations may use null to represent the bootstrap class loader.
记得经常查看相关的 JavaDoc。这对一切都有效,有时它可能是救命稻草。