开发者社区> 问答> 正文

java 利用反射 为类的各个字段动态设置相应值 400 请求报错 

我用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()});//这里就出错了
}
这个方法可行吗?有更好的办法吗?

                           
 

展开
收起
kun坤 2020-05-30 14:25:06 415 0
1 条回答
写回答
取消 提交回答
  • 行不行试试不就知道了么######方法可行!哈哈!实例话Student的位置错了,这段代码没有问题!###### 把这个加上试下
    boolean accessible = field.isAccessible();
    field.setAccessible(true);
    //set值
    field.setAccessible(accessible);

    ###### 如果是对标准的JavaBean进行反射操作,建议使此类

    java.beans.Introspector.getBeanInfo(Class<?> clazz);

    ######哦,谢谢,新知识啊

    2020-05-30 14:25:11
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载