从前台传回的全是String类型,后台通过反射 判断 名字相同 如传来的age相同 ,则用method.invoke(Users.class, age)来调用方法,现在的问题是传来的age全是String 类型的 但我想要int类型的, Users中的set和get都能跟前台传来的对应的 我想问下怎么通过反射 将age强制转化为int类型啊,可能表达 不清楚 前台传来 String age="11"
Users类中有age 这个字段 就是根据字段名相同把age 转化为int型
Users类中有age 这个字段 就是根据字段名相同把age 转化为int型
Users类中有age 这个字段 就是根据字段名相同把age 转化为int型这个要你自己作转化,可以参考下struts2中的转化方式,首先读取 age的类型,这里你的类型值为int,所以你需要有一个stringToInt的转化方法,方法内部一般可以写成
return Integer.parseInt(“ages”)的实现
如果是根据字段,可以这样
Field f = Users.class.getDeclaredField("age");
Class<?> c = f.getType();
if (c == int.class) {
method.invoke(Users.class, Integer.valueOf(age));
} else if (c == float.class) {
method.invoke(Users.class, Float.valueOf(age));
} else if (c == double.class) {
method.invoke(Users.class, Double.valueOf(age));
}
如果是根据传进来的age,那就判断是不是包含小数点,也可以用正则