黑马程序员技术交流社区
标题:
自定义类加载器,我有困惑
[打印本页]
作者:
世界公民
时间:
2014-4-25 17:05
标题:
自定义类加载器,我有困惑
本帖最后由 世界公民 于 2014-4-25 21:33 编辑
下载是我自定义的一个类加载器,把Myclass.class文件放到其他目录下,但是这样就只能用我写的类加载器来加载这个类了,当把Myclass.class再放回正常的目录下时,父类加载器也没有办法加载了,怎么办???
//含有main方法的类
public class ClassLoaderTest {
public static void main(String[] args) throws Exception {
Class clazz = new MyClassLoader().loadClass(" ");
Date d = (Date)clazz.newInstance();
System.out.println(d);
}
}
//我的类加载器
public class MyClassLoader extends ClassLoader{
@Override
public Class findClass(String name){
FileInputStream fi;
String classurl = "D:\\Users\\Administrator\\workspace2\\day2\\day2Class\\Myclass.class";
ByteArrayOutputStream bo = null;
System.out.println("我的类加载器");
try {
fi = new FileInputStream(classurl);
bo = new ByteArrayOutputStream();
int i = -1;
while(true){
i = fi.read();
if(i==-1)break;
bo.write(i);
}
fi.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
byte[] bytes = bo.toByteArray();
return defineClass(bytes,0,bytes.length);
}
}
//我写的测试类
public class Myclass extends Date{
@Override
public String toString(){
return "我是Myclass类中的toString方法。";
}
}
复制代码
作者:
世界公民
时间:
2014-4-25 18:15
唉,,,没人搭理我:(
作者:
136616244
时间:
2014-4-25 20:35
为什么呢 ,因为我们都是菜鸟,不是大牛 不知道啊
!
作者:
世界公民
时间:
2014-4-25 20:39
136616244 发表于 2014-4-25 20:35
为什么呢 ,因为我们都是菜鸟,不是大牛 不知道啊
!
好吧,不想这个问题了:(
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2