黑马程序员技术交流社区

标题: 自定义类加载器,我有困惑 [打印本页]

作者: 世界公民    时间: 2014-4-25 17:05
标题: 自定义类加载器,我有困惑
本帖最后由 世界公民 于 2014-4-25 21:33 编辑

下载是我自定义的一个类加载器,把Myclass.class文件放到其他目录下,但是这样就只能用我写的类加载器来加载这个类了,当把Myclass.class再放回正常的目录下时,父类加载器也没有办法加载了,怎么办???

  1. //含有main方法的类
  2. public class ClassLoaderTest {

  3.         public static void main(String[] args) throws Exception {
  4.                 Class clazz = new MyClassLoader().loadClass("  ");
  5.                 Date d = (Date)clazz.newInstance();
  6.                 System.out.println(d);
  7.         }
  8. }

  9. //我的类加载器
  10. public class MyClassLoader extends ClassLoader{

  11.         @Override
  12.         public Class findClass(String name){
  13.                 FileInputStream fi;
  14.                 String classurl = "D:\\Users\\Administrator\\workspace2\\day2\\day2Class\\Myclass.class";
  15.                 ByteArrayOutputStream bo = null;
  16.                 System.out.println("我的类加载器");
  17.                 try {
  18.                         fi = new FileInputStream(classurl);
  19.                         bo = new ByteArrayOutputStream();
  20.                         int i = -1;
  21.                         while(true){
  22.                                 i = fi.read();
  23.                                 if(i==-1)break;
  24.                                 bo.write(i);
  25.                         }
  26.                         fi.close();
  27.                 } catch (Exception e) {
  28.                         // TODO Auto-generated catch block
  29.                         e.printStackTrace();
  30.                 }
  31.                 byte[] bytes = bo.toByteArray();
  32.         return defineClass(bytes,0,bytes.length);
  33.     }
  34. }
  35. //我写的测试类
  36. public class Myclass extends Date{
  37.         @Override
  38.         public String toString(){
  39.                 return "我是Myclass类中的toString方法。";
  40.         }
  41. }
复制代码

作者: 世界公民    时间: 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