类test.Test内容如下publicclassTest{publicStringname="222";}publicstaticvoidmain(String[]args){Classtyp=Class.forName("test.Test");Objectobj=typ.newInstance();Fieldfield=t...
类test.Test内容如下
public class Test{public String name="222";}
public static void main(String[] args){
Class typ = Class.forName("test.Test");
Object obj = typ.newInstance();
Field field = typ.getField("name");
field.set(obj, 111);
现在又这样一个对象,就是通过反射创建一个Test对象
最后一行会执行失败,因为类型不符
目前希望实现一个功能,就是能够读取field的类型,并将111转换成指定的类型
想完成下面的方法如何写呢
public void changeType(Object obj, Class typ){
把对象obj转换成typ指定的类型
}
我的意思就是反射创建一个对象,然后从Xml中读取数据给对象初始化,读出来的都是String类型,可是不知道如何进行类型转换,比如读到true,也知道目标字段类型
我有一种想法:
Object obj = 5;
public Object changeType(Object s, Class type){
Method method = type.getMethod("valueOf", s.getClass());
return method.invoke(type, s);
}
我想这样,可是怎么就不行呢
changeType("asdg", obj.getClass());
这样调用怎么也不对,说没有valueOf方法,可是String类里面分明有valueOf方法
怎么回事呢
展开