为啥classloader不一样就没办法直接访问
来源:9-6 案例:插件化加载类

she_says
2022-01-16
为啥classloader不一样就没办法直接访问,要通过反射,为什么这样说?系统的很多方法比如list的各种操作跟我们自定义的类加载器也不一样,但是不需要反射才访问
写回答
1回答
-
哦是这样的,classloader(后面简称cl)对于类的加载有个双亲委派机制,一般来说每个cl都有一个父cl,加载类时也会优先父cl去加载。
你说的系统的类就是父cl里面的类,因此我们的程序可以直接访问。
视频里面提到的不一样就得反射是隐含了不存在cl的父子关系的,这种情况下想要在一个类里面访问跟自己完全不同cl的类,就只能反射并且明确指出被访问的类的cl是哪一个。
012022-01-18
相似问题