java防止整型转为E_Java反射,Int和Integet类型设置不成功,String可以设置

为什么我使用setXXX方法设置Int,Integer类型参数,不成功?哪位大侠来帮小弟一把!

代码:

/**

* 封装方法,用来获取javaBean内的每一个字段的set方法

* @param field 字段名称

* @param cla 对象的Class实例

* @param newObj 实体类的对象

* @param result 设置值的内容

* @return Object

*/

public void invokeMethod_set(Field field,Class extends Object> cla,Object newObj,Object result){

try{

//获取属性的名称并取出首字母,将其转化为大写

String firstName = field.getName().substring(0,1).toUpperCase();

//将属性的名称转化为标准格式的方法名称getXxx

String mname =”set”+firstName + field.getName().substring(1);

System.out.println(mname+”  “+field.getType());

//获取实体类中的get方法名称

Method metodName = cla.getMethod(mname, field.getType());

System.out.println(“值:”+result);

//执行方法

metodName.invoke(newObj, result);

}catch(Exception e){

logger.error(e);

}

}

/**

* 查询

* @param obj 传入实体类的对象

*/

public List> find(Object obj) {

List list= new ArrayList();

try{

Class extends Object> cla = obj.getClass();

Object tableName = invokeMethod(cla.getDeclaredField(“tableName”), cla, obj);

Field fields[] = cla.getDeclaredFields();

ResultSet rs = getStatement().executeQuery(” Select * from  “+tableName);

while(rs.next()){

//创建一个新的类型

Object newObj = cla.newInstance();

for (int i = 1; i 

//System.out.println(rs.getObject(i));

//设置属性的值

invokeMethod_set(fields[i], cla, newObj,rs.getObject(i));

}

System.out.println(“…..”);

//把新创建的类存放到list内

list.add(newObj);

}

}catch(Exception e){

e.printStackTrace();

logger.error(e);

}

return list;

}

输出集合内容:

List list = (List)idao.find(new ProductTypeParent());

for (int i = 0; i 

ProductTypeParent pTypeParent = list.get(i);

System.out.println(pTypeParent.getEpp_id()+”  “+pTypeParent.getEpp_name());

}

结果:

null  图书音像

null  百货

null  服装

null  数码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值