我想动态的对一个Object造型,类名作为String动态传入,大意如下:public void fun(Object o,String str){
Class c=Class.forName(str);
(c)o;
}(c)o;这句话肯定是错误的,我想知道有什么办法能达到这个效果.
Class c=Class.forName(str);
(c)o;
}(c)o;这句话肯定是错误的,我想知道有什么办法能达到这个效果.
不论怎样你都要将一个object对象变成起子对象,
而此对象之前并不是该子对象,
违背JAVA类型转换的原则。
(未实验。。,猜测)
public Object fun(String str){
Class C =Class.forName(str);
return new C();
}
return C.newInstance()
------------------------------------------------
你说得很对,问题是 (c)o; 这句代码语法有错.我想知道java有没有类似这样的语法.我并不需要new一个新对象.
return c.newInstance();
AbstractClass abstract = (ClassName)c.newInstance();AbstractClass 也可以换成接口。在java中最好用接口实现该操作。className 可以动态从外部获取。另className所指向的类,其jar包应该在classpath中配置。或者调用时在当前路径,并指定全路径名(举例如com.ibm.ClassName)
===========================================================
真的就没有办法了吗?