如果要突破父类委托机制,需要重写loadClass()方法。
如下的例子,当遇到某个类名的时候,会先自己尝试加载,如果自己加载不到,再交由父加载器加载。
Java Code
package com.bjsxt.test; |
依然使用之前的HelloWorld.class来测试。
执行输出语句的时候,会遇到
java.lang.Object
java.lang.System
java.io.PrintStream
CustomClassLoader会先尝试加载,加载不到再交由父类加载器加载。(AppClassLoader,并回归正常机制。)