本帖最后由 杨海波 于 2012-6-8 23:01 编辑
楼主你好!根据本人观察和实验,发现楼主可能存在的几处错误如下,先看代码:-
- public static void main(String[] args) throws Exception {
- // 获取Person类的字节码
- Class clazz = Class.forName("cn.itcast.domain.Person");
- // 获取Person类的构造函数
- Constructor constructor = clazz.getConstructor(String.class, int.class);
- // 初始化Person对象,name为TOM age为21
- Person person = (Person) constructor.newInstance("TOM", 21);
- // 获取setName方法
- Method method = clazz.getMethod("setName", String.class);
- // 调用setName方法
- method.invoke(person, "Jack");
- // 输出
- System.out.println(person.getName());
- }
复制代码 运行结果:Jack
楼主发生应该是在调用方法时出现错误,invoke(Object, Object... args)方法接收的第一个参数是调用该方法的对象,第二个参数是一个可变参数,用来接收方法运行时需要的参数。
另外,建议楼主在eclipse中编辑代码时显示行号(代码编辑区左侧,鼠标右击 选中show Line Numbers ),出错的时候方便我们精确定位!
希望能对你有所帮助!大家一起进步!加油!{:soso_e130:}
|