登录  /  注册
ssh - javassist中的CtClass对象的toClass做了什么?
高洛峰
高洛峰 2017-04-17 17:49:01
[Java讨论组]
public class MyClassLoader extends WebappClassLoader{
    public MyClassLoader(){
        System.out.println("无参构造");
    }
    
    public MyClassLoader(ClassLoader parent){
        super(parent);
        System.out.println();
        System.out.println("当前现成的加载器"+Thread.currentThread().getContextClassLoader());
        System.out.println(getParent());
        
    }
    @Override
    public Class<?> loadClass(String name) throws ClassNotFoundException {
    
        Class<?> clazz=null;
        clazz=findLoadedClass(name);
        if(clazz==null){
            if(name.contains("com.yyd")){
                clazz=loadbyme(name);
            }else{
                clazz=super.loadClass(name);
            }
        }
        return clazz;

    }

    private Class<?> loadbyme(String name) throws ClassNotFoundException{
        ClassPool pool=ClassPool.getDefault();
        CtClass ctclass=null;
        Class<?> clazz=null;
        
        //这个clazz2就是用来实验的,没用
        CtClass ctclass2=null;
        Class<?> clazz2=null;
        
        try {
            pool.insertClassPath("E:\\***\\WEB-INF\\classes");
            ctclass = pool.get(name);
            ctclass2 = pool.get(name);
        //下面这个try-catch块按理说没起什么作用,但是去掉就不报错,加上就报错    
            try {
                clazz2=ctclass2.toClass();
                System.out.println(name+"------------->"+clazz2);
                
            } catch (CannotCompileException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        } catch (NotFoundException e) {
            System.err.println("********NotFoundException---------》"+name);
            clazz=super.loadClass(name);
        }
        
        clazz=super.loadClass(name);

        return clazz;    
    }
}




代码中写有注释的那个try-catch块,ctclass2.toClass()的底层是做了什么操作?
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号