为啥classloader不一样就没办法直接访问

来源:9-6 案例:插件化加载类

she_says

2022-01-16

为啥classloader不一样就没办法直接访问,要通过反射,为什么这样说?系统的很多方法比如list的各种操作跟我们自定义的类加载器也不一样,但是不需要反射才访问

写回答

1回答

bennyhuo

2022-01-17

哦是这样的,classloader(后面简称cl)对于类的加载有个双亲委派机制,一般来说每个cl都有一个父cl,加载类时也会优先父cl去加载。

你说的系统的类就是父cl里面的类,因此我们的程序可以直接访问。

视频里面提到的不一样就得反射是隐含了不存在cl的父子关系的,这种情况下想要在一个类里面访问跟自己完全不同cl的类,就只能反射并且明确指出被访问的类的cl是哪一个。

0
1
she_says
非常感谢!
2022-01-18
共1条回复

学会Kotlin 突破开发语言瓶颈

如果有一门语言可以取代Java,那么它一定是Kotlin。

1760 学习 · 481 问题

查看课程