java使用反射获取方法为什么会报这个异常

现在想取出特定的方法,但是现在出了点问题,有点不明白这是要获取方法的类publicclassStudent{publicStringgetNumber(Strings){... 现在想取出特定的方法,但是现在出了点问题,有点不明白
这是要获取方法的类
public class Student {
public String getNumber(String s) {这是要获取的方法
return "1234";
}

}
/**下面是想用反射获取getNumber方法**/
Student s = new Student();
Class c = s.getClass();
Class[] cs=new Class[1];
cs[0]=String.class;
Method m=c.getDeclaredMethod("getNumber",ca);
然后就报异常了
java.lang.IllegalArgumentException: wrong number of arguments
意思说的我参数不够,但是就有一个String类型的,已经放到数组里了,这是怎么回事
展开
 我来答
花二十三0H49e0
推荐于2016-06-16 · TA获得超过108个赞
知道答主
回答量:102
采纳率:0%
帮助的人:79.7万
展开全部
  1. 试一试下面的内容:


public class ReflectTest
{
/**
 * @param args
 */
public static void main(String[] args) throws NoSuchMethodException,
SecurityException, IllegalAccessException,
IllegalArgumentException, InvocationTargetException
{
/** 下面是想用反射获取getNumber方法 **/
Student s = new Student();
Class c = s.getClass();
// Class[] cs = new Class[1];
// cs[0] = String.class;
Method m = c.getDeclaredMethod("getNumber", String.class);

System.out.println(m.invoke(new Student(), "123"));
}
}

2.另外,一般这个反射获得方法的方式是针对私有方法的,而不是公有方法。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式