异常如下
Exception in thread "main" java.lang.NoSuchMethodException: com.dyq.homework.Student.setName()
at java.lang.Class.getMethod(Class.java:1786)
at com.dyq.homework.TestHomeWork.main(TestHomeWork.java:69)
Student类(写了主要部分)
public void setName(String name) {
this.name = name;
}
public void setAge(Integer age) {
this.age = age;
}
public void setSex(String sex) {
this.sex = sex;
}
程序代码:(只写了主要出错的部分)
Class clazz = Class.forName(clazzName);//clazzName为该类的地址
//无参构造
Object stu2 = clazz.newInstance();
Method setName = clazz.getMethod("setName");//出错地方,没有写形参类型
//应改为Method setName = clazz.getMethod("setName",String.class);
setName.invoke(stu2, stuName);
Method setAge = clazz.getMethod("setAge");//出错地方,没有写形参类型
//应改为Method setAge = clazz.getMethod("setAge",Integer.class);
setAge.invoke(stu2,Integer.parseInt(stuAge));
Method setSex = clazz.getMethod("setSex");//出错地方,没有写形参类型
//应改为 Method setSex = clazz.getMethod("setSex",String.class);
setSex.invoke(stu2,stuSex);
错误分析
Class.getMethod(String str, Class<?>... parameterTypes):
该方法的第一个参数是要获得方法的名字,第二个参数是按声明顺序标识该方法形参类型
由于我没有写后面的形参类型导致找不到方法,所以出错
版权声明:本文为Dyqqqi原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。