读书人

动态载入jar包里的类解决办法

发布时间: 2012-02-07 17:45:36 作者: rapoo

动态载入jar包里的类
已经载入jar包里类MyParser,
其中MyParser extends Parser{}

在主程序里也有一个相同的Parser类,在主程序里将MyParser的对象转换为Parser类型时出错. 代码如下:
myClass = cl.loadClass("com.jb.book.parse.MyParser");
Object obj = myClass.newInstance();

Parser parser = ((Parser)obj);
String ret = parser.getData(15, 20);

请问有办法可以将MyParser的对象转换为Parser类型 吗?



[解决办法]
错误内容是什么?
[解决办法]
ClassCast了吧?


用你的自定义类装载器装载MyParser和Parser
[解决办法]

Java code
将下列类打入jar包:package com.kouyi.test.vo;public class UserExtend {    private String user_id = "1";    private String remark;    public String getUser_id() {        return user_id;    }    public void setUser_id(String user_id) {        this.user_id = user_id;    }    public String getRemark() {        return remark;    }    public void setRemark(String remark) {        this.remark = remark;    }}新建一个UserExtend类package com.kouyi.test.action;public class UserExtend {    /**     * @param args     */    public static void main(String[] args) {        try {            Class cl = ClassLoader.getSystemClassLoader().loadClass("com.kouyi.test.vo.UserExtend");            com.kouyi.test.vo.UserExtend obj = (com.kouyi.test.vo.UserExtend) cl.newInstance();            String ret = obj.getUser_id();            System.out.println(ret); // 输出为1        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }            }} 

读书人网 >J2SE开发

热点推荐