java 反射 数据类型转换

我用反射获取表单数据表单接收值全为String但属性数据类型多样需转换publicvoidprocessActionFrom(HttpServletRequestreq)... 我用 反射获取表单数据 表单接收值全为String 但属性数据类型多样 需转换

public void processActionFrom(HttpServletRequest req) {
try {
// 类加载器
// 01 根据doname的名称来获取到需要被加载的className
String ename = doname + "From";
// 02 根据ename的名称来获取className
String eclassName = prop.getProperty(ename);
// 03实例化对象
Class cla = Class.forName(eclassName);
ifrom = (IFrom) cla.newInstance();

// 01 获取值 根据表单提交参数名称来获取值
Enumeration<String> es = req.getParameterNames();
while (es.hasMoreElements()) {
// 获取到提交的参数名
String paraname = es.nextElement();
// 获取值
String paravalue = req.getParameter(paraname);
// 给属性进行赋值
// 01 得到方法名
String mename = "set" + paraname.substring(0, 1).toUpperCase() + paraname.substring(1);
//这里转换?
Method method = cla.getDeclaredMethod(mename, String.class);
method.setAccessible(true);
method.invoke(ifrom, paravalue);
}

} catch (Exception e) {
e.printStackTrace();
}

}

大佬们给给看看
展开
 我来答
samismiling
2017-06-27 · 知道合伙人软件行家
samismiling
知道合伙人软件行家
采纳数:1340 获赞数:5604

向TA提问 私信TA
展开全部

给你一段属性反射的代码,你自己看着改吧

       Field[] fs = userCla.getDeclaredFields();
       for(int i = 0 ; i < fs.length; i++){
           Field f = fs[i];
           f.setAccessible(true); //设置些属性是可以访问的
           Object val = f.get(bean);//得到此属性的值   
      
           System.out.println("name:"+f.getName()+"\t value = "+val);
          
           String type = f.getType().toString();//得到此属性的类型
           if (type.endsWith("String")) {
              System.out.println(f.getType()+"\t是String");
              f.set(bean,"12") ;        //给属性设值
           }else if(type.endsWith("int") || type.endsWith("Integer")){
              System.out.println(f.getType()+"\t是int");
              f.set(bean,12) ;       //给属性设值
           }else{
              System.out.println(f.getType()+"\t");
           }
          
       }

基本就是getType()之后,根据type的类型来反射

ittimeline
2021-05-25
知道答主
回答量:87
采纳率:0%
帮助的人:4万
展开全部

基本数据类型的类型转换

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式