java 利用反射 为类的各个字段动态设置相应值
我用XmlPullParser解析XML,定义了一个Student类,类成员对应xml中的标签,我用反射获取Studen类中的所有字段,并为每个字段set值为xml中的Parser.nextText()的值
Field[] fields = student.getClass().getDeclaredFields(); for (Field field : fields) { fieldName=field.getName(); if (fieldName.equals(parser.getName())) { System.out.print("tag:"+fieldName+" 值:"+parser.nextText()); //这里可以正常获取值 String setXXX="set"+fieldName.substring(0, 1).toUpperCase()+fieldName.substring(1); Method method = student.getClass().getDeclaredMethod(setXXX,String.class); method.invoke(student, new Object[]{parser.nextText()});//这里就出错了
}
这个方法可行吗?有更好的办法吗?