// 首先创建一个ClassLoader对象ClassLoader myClassLoader = new myClassLoader();// 利用定制ClassLoader对象装入类文件// 并把它转换成Class对象Class myClass = myClassLoader.loadClass( "mypackage.MyClass" );// 最后,创建该类的一个实例Object newInstance = myClass.newInstance();// 注意,MyClass所需要的所有其他类,都将通过// 定制的ClassLoader自动装入
public Class loadClass( String name, boolean resolve )throws ClassNotFoundException {try {// 我们要创建的Class对象Class clasz = null;// 必需的步骤1:如果类已经在系统缓冲之中,// 我们不必再次装入它clasz = findLoadedClass( name );if (clasz != null)return clasz;// 下面是定制部分byte classData[] = /* 通过某种方法获取字节码数据 */;if (classData != null) {// 成功读取字节码数据,现在把它转换成一个Class对象clasz = defineClass( name, classData, 0, classData.length );}// 必需的步骤2:如果上面没有成功,// 我们尝试用默认的ClassLoader装入它if (clasz == null)clasz = findSystemClass( name );// 必需的步骤3:如有必要,则装入相关的类if (resolve && clasz != null)resolveClass( clasz );// 把类返回给调用者return clasz;} catch( IOException ie ) {throw new ClassNotFoundException( ie.toString() );} catch( GeneralSecurityException gse ) {throw new ClassNotFoundException( gse.toString() );}}
·2024年12月目录 ·2024年11月目录 ·2024年10月目录 ·2024年9月目录 ·2024年8月目录 ·2024年7月目录 ·2024年6月目录 ·2024年5月目录 ·2024年4月目录 ·2024年3月目录 ·2024年2月目录 ·2024年1月目录 ·2023年12月目录 ·2023年11月目录