反射问题 ,知道类名和包名,怎么实例化一个对象??

kelly859 2008-08-26 02:52:11
如已知类名为com.xin.reflect.Foo

先获取类Class o = Class.forName("com.xin.reflect.Foo");

再实例化(Foo)object = o.();
就在这里报错了:java.lang.IncompatibleClassChangeError

我猜测是因为com.xin.reflect.Foo有多种构造函数导致newInstance系统不知道怎么实例化

我现在想取Foo中的某方法来调用,但是却获取不了实例对象,大家帮忙看看
...全文
388 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZangXT 2008-08-26
  • 打赏
  • 举报
回复
如果有多个构造方法,使用Class类的getDeclaredConstructor、getConstructor等方法得到构造方法再去调用
这里没有必要进行强转。如果你仅仅知道类的信息是"com.xin.reflect.Foo"这个串,那么你如何能写出(Foo)objec这样的东西。
如果能写出(Foo)object,为什么不Foo object =new Foo();
GGMMYQL 2008-08-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 control_net 的回复:]
Class o = Class.forName("com.xin.reflect.Foo");
com.xin.reflect.Foo foo = (com.xin.reflect.Foo)o.newInstance();
[/Quote]
control_net 2008-08-26
  • 打赏
  • 举报
回复
Class o = Class.forName("com.xin.reflect.Foo");
com.xin.reflect.Foo foo = (com.xin.reflect.Foo)o.newInstance();
xinshuguang 2008-08-26
  • 打赏
  • 举报
回复

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧