200分求帮,我的一个反射的程序,出现java.lang.IllegalArgumentException异常,麻烦大家给看看

bromon 2004-08-11 11:13:14
底层类如下:
public class Success
{
public String act(String content)
{
return("收到"+content);
}
}

然后写了这个类,通过反射来调用Success(部分代码):
//导入类
Class c=Class.forName("Success");

//构造参数
Class params[]=new Class[1];
params[0]=Class.forName("java.lang.String");

//获得方法
Method m=c.getMethod("act",params);
Object args[]=new Object[1];
args[0]=content;

//如果把这一句注释掉,就没有异常了
Object returnObject=m.invoke(m,args);

String result=(String)returnObject;

异常信息是:

java.lang.IllegalArgumentException: object is not an instance of declaring class

在线等待,问题解决马上结帖
...全文
237 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ntzls 2004-08-11
  • 打赏
  • 举报
回复
泛型 VS 数组
bromon 2004-08-11
  • 打赏
  • 举报
回复
问题已解决,谢谢大家
bromon 2004-08-11
  • 打赏
  • 举报
回复
我已经把
Object returnObject=m.invoke(m,args);

改为:
Object returnObject=m.invoke(c,args);

还是一样的异常
bromon 2004-08-11
  • 打赏
  • 举报
回复
content是传递过来的字符串
snap2008cn 2004-08-11
  • 打赏
  • 举报
回复
从报错类型与内容来看
是这句的原因
args[0]=content;
请问content是什么??
  • 打赏
  • 举报
回复
Object returnObject=m.invoke(m,args);
=>
Object returnObject=m.invoke(c,args);
ntzls 2004-08-11
  • 打赏
  • 举报
回复
Object returnObject=m.invoke(m,args);
                ^^^^

public Object invoke(Object obj,
Object... args)

IllegalArgumentException - if the method is an instance method and the specified object argument is not an instance of the class or interface declaring the underlying method (or of a subclass or implementor thereof);

62,614

社区成员

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

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