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 类型就不会有问题。不知道还有没有别的方法可以解决。谢了。。。~_~

[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]

field.getType()得到它的类型

field.setAccessible(true),这样就给私有变量赋值