java map转对象 泛型_泛型(二)封装工具类CommonUtils-把一个Map转换成指定类型的javabean对象...

1、commons-beanutils的使用

commons-beanutils-1.9.3.jar 依赖 commons-logging-1.2.jar

代码1:

String className = "cn.itcast.domain.Person";

Class clazz= Class.forName(className);

Object bean= clazz.newInstance();

BeanUtils.setProperty(bean,"name", "张三");

BeanUtils.setProperty(bean,"age", "20"); //age是int类型,会自动转换

BeanUtils.setProperty(bean, "xxx", "XXX"); //没有xxx属性,也不会抛异常

String age= BeanUtils.getProperty(bean, "age");

代码2:

需求:把map中的属性直接封装到一个bean类中。map:{"username:zhangsan","password:123"}。 我们要把map的数据封装到一个javaBean中!要求map的key值于bean的属性名相同。

首先,新建一个javabean,User.java 有两个属性username,password。

public void fun1() throwsException {

Map map = new HashMap();

map.put("username", "zhangsan");

map.put("password", "123");

User user= newUser();

BeanUtils.populate(user, map);

System.out.println(user);//User [username=zhangsan, password=123]

}

代码3:封装工具类(用到泛型)

public classCommonUtils {//把一个Map转换成指定类型的javabean对象

public static T tobean(Map map, Classclazz) {try{

T bean=clazz.newInstance();

BeanUtils.populate(bean, map);returnbean;

}catch(Exception e) {throw newRuntimeException(e);

}

}

}

2、测试封装的工具类

packagecom.oy;importjava.math.BigDecimal;importjava.util.HashMap;importjava.util.Map;/***@authoroy

*@version1.0

* @date 2019年5月7日

* @time 下午10:10:35*/

public classUser {privateInteger id;privateString name;privateBoolean status;privateBigDecimal balance;privateDouble salary;public static voidmain(String[] args) {

Map map = new HashMap<>();

map.put("id", 1);

map.put("name", "张三");

map.put("status", true);

map.put("balance", 1000.123456789);

map.put("salary", 1000.123456789);

System.out.println(CommonUtils.tobean(map, User.class));

}//getter、setter和toString方法省略}

map的key对应的值全部写成字符串格式也是可以的:

Map map = new HashMap<>();

map.put("id", "1");

map.put("name", "张三");

map.put("status", "true");

map.put("balance", "1000.123456789");

map.put("salary", "1000.123456789");//User [id=1, name=张三, status=true, balance=1000.123456789, salary=1000.123456789]

System.out.println(CommonUtils.tobean(map, User.class));

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值