为了从类工厂中获取到自定义的MyClass类型的类,传入参数MyClass.class,然后强制转化为MyClass,再调用MyClass里的方法实现业务。但是现在跑的时候报错
java.lang.ClassCastException: java.lang.Class cannot be cast to demo.MyClass调试发现类工厂中取出来的为Class类型,所以不能转化为MyClass类型,那要怎样才能实现以上功能呢?我想要从MyClassFactory中就提取出MyClass类型,而不是Class,如何做到?
MyClass myclass = (MyClass) MyClassFactory.getClass(MyClass.class);
myclass.doBusiness();
java.lang.ClassCastException: java.lang.Class cannot be cast to demo.MyClass调试发现类工厂中取出来的为Class类型,所以不能转化为MyClass类型,那要怎样才能实现以上功能呢?我想要从MyClassFactory中就提取出MyClass类型,而不是Class,如何做到?
MyClass myclass = (MyClass) MyClassFactory.getClass(MyClass.class);
myclass.doBusiness();
解决方案 »
- 大神们,谁有 好点的jsp教程!
- 绘制2D坐标系和趋势线
- 请问SQLServer中的text类型的数据 在Java中如何取。用getString()吗?
- 怎样判断一个对象是不是属于某个类?
- TreeSet中如何按照插入先后顺续排序?
- 3个按钮 分别显示画3个圆 可点按钮 没反映 有源程序很小的,程序编译通过, 帮我看看 成心谢谢
- 简单的问题!急用!谢谢!!从键盘输入的内容怎样与文件中的内容比较!?
- 请问如何能使程序运行窗口的"关闭"起作用呢?
- 有 3 年以上工作经验的请进, 顶级高手手请进 ! 一个巨难的 FTP 的问题 !
- 一个关于Applet问题,1小时结帖!
- Java2D的问题
- 如何使布局随着JInternalFrame的变大而变大
public static Object getClass(Class clazz) throws Exception {
HashMap map = new HashMap(); // 实现将抽象类与实现类想关联,便于获取
Class iface = Class.forName(抽象类名);
Class impl = Class.forName(实现类名);
map.put(iface, impl); return map.get(clazz);
}
因为要放到HashMap里的类的类型各不一样,无法统一,只能将这些类的Class对象放进去,故导致了错误的产生,但我不知道要怎么修改才能将Class转化为自定义类类型