fei521sha 2009-06-12 13:24
浏览 522
已采纳

java反射机制 ,给属性设值时如何确定其类型?

[code="java"]Field field = mybean.getClass().getField("age");//mybean 为某个类,在mybean中,age为int 类型

Object age = "20";//因为此处的age是动态获得的,也有可能是string类型或者别的基本类型,所以这里用Object

field.set(mybean, age);[/code]

到设置时就出异常了。

ava.lang.IllegalArgumentException
at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:63);

如果把 mybean 中的 age 改成 String 类型就不会有问题。不知道还有没有别的方法可以解决。谢了。。。~_~

  • 写回答

2条回答 默认 最新

  • wanghaolovezlq 2009-06-12 14:45
    关注

    [code="java"]
    Field field = mybean.getClass().getField("age");//mybean 为某个类,在mybean中,age为int 类型

        Class typeClass = field.getType();
    
        Constructor con = typeClass.getConstructor(typeClass);                  
    
        Object age = con.newInstance("20");
    
        field.set(mybean, age);
    

    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?