A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 世界公民 中级黑马   /  2014-4-25 17:05  /  877 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 世界公民 于 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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
SyouRai_Tsk + 1

查看全部评分

3 个回复

倒序浏览
唉,,,没人搭理我:(
回复 使用道具 举报
为什么呢   ,因为我们都是菜鸟,不是大牛  不知道啊
回复 使用道具 举报
136616244 发表于 2014-4-25 20:35
为什么呢   ,因为我们都是菜鸟,不是大牛  不知道啊

好吧,不想这个问题了:(
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马