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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Moriarty 中级黑马   /  2014-8-14 17:13  /  1177 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我的类加载器哪里错了?出现IlleagerAccessError   class worker not access its superclass person
import java.lang.reflect.*;
import java.io.*;
class myload extends ClassLoader
{
        String path="c:";
        myload()
        {
                super();
        }
        myload(String path)
        {
                this.path=path;
        }
        public Class findClass(String name)throws ClassNotFoundException
        {
                FileInputStream read=null;
                byte[] data=new byte[1024*64];
                int number;
                try
                {
                        read=new FileInputStream(path+File.separator+name);
                        number=read.read(data);
                        return defineClass(data,0,number);
                }
                catch (Exception e)
                {
                }
                return super.findClass(name);
        }
}
class person
{
        String name="xxx";
}
//class worker extends person
//{
//        String name="yy";
//}
public class hhaha
{
        public static void main(String[] args)throws Exception
        {
                Class one=new myload("d:").loadClass("worker.class");
        //        one.newInstance();

        }
}

1 个回复

倒序浏览
应该是抛出IllegalAccessError这个异常吧,好像是因为你的person类不是public的,所以反射不到,你试试把类分成单独的java文件写
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马