如何实现自定义的ClassLoader

2025-05-15 22:04:21
推荐回答(1个)
回答1:

通常定制一个ClassLoader很简单,一般只需要很少的几个步骤就可以完成。

Java规范规定,所有的用户自定义ClassLoader都必须从抽象类“java.lang.ClassLoader”类继承而来。下面先看一下这个类的内部实现,以帮助我们更好的理解相关内容。

1: protected synchronized Class loadClass(String name, boolean
2: resolve)throws ClassNotFoundException{
3: // 首先, 检查这个类是否已经加载。
4: Class c = findLoadedClass(name);
5: if (c == null) {
6: try {
7: if (parent != null) {
8: c = parent.loadClass(name, false);
9: }else{
10: c = findBootstrapClass0(name);
11: }
12: }catch(ClassNotFoundException e){
13: // 如果仍然没有找到,那么就调用findclass查找这个类.
14: c = findClass(name);
15: }
16: }
17: if (resolve) {
18: resolveClass(c);
19: }
20: return c;