今天调用下面的代码的时候
Field schoolField = studentClass.getField("school");
schoolField.setAccessible(true);
schoolField.set(null, "中南林科大");
System.out.print("school:" + student.getSchool());
爆出java.lang.NoSuchFieldException: school异常
分析思路:
1 、分析反射代码看字段有没有写错,分析了,的确没写错。
2 、分析学生这个类里面的字段有没有搞错,我之复制的代码,怕有空格什么的,所以重新写这字段,然后还是报错。
3、看setAccessible 有没有写错,这个的确是访问私有权限的方法。
4、最后才发现是我的方法搞错了,不能用getField,需要用getDeclaredField
更多请见:http://www.mark-to-win.com/tutorial/51802.html