使用了BeanUtils的简单操作
直接获取对象的某个值
et.createCell(BeanUtils.getProperty(o, eh.getFieldName()));
简单为对象某个字段赋值
c.setCellValue(BeanUtils.getProperty(datas.get(i),headers.get(j).getFieldName()));
beanUtils的底层是内省。下面是又一个小例子,实现了map和bean的映射注入
package com.itcast.domain;
public class Student {
private String username;
private String password;
private int age;
public Student() {
super();
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Student(String username, String password, int age) {
super();
this.username = username;
this.password = password;
this.age = age;
}
@Override
public String toString() {
return "Student [username=" + username + ", password=" + password
+ ", age=" + age + "]";
}
}
package com.itcast.test;
import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.beanutils.BeanUtils;
import org.junit.Test;
import com.itcast.domain.Student;
import com.itcast.utils.CommonUtils;
@SuppressWarnings({"rawtypes","unused"})
public class Test01 {
@Test
public void fun1() throws Exception{
Class cla=Class.forName("com.itcast.domain.Student");
Object stu=cla.newInstance();
BeanUtils.setProperty(stu, "username", "guodaxia");
BeanUtils.setProperty(stu, "password", "12345");
BeanUtils.setProperty(stu, "age", "21");//这个类会自动进行类型转换注入
//System.out.println(stu);
int age=Integer.valueOf(BeanUtils.getProperty(stu, "age"));//getProperty得到的都是String类型
System.out.println(age);
}
/*
*把map中的属性直接封装到一个bean中
*
* Map:{"username":"zhangsan","password","123"}
* 我们要把map的数据封装到一个javaBean中,要求map的key域bean的属性名相同!
*/
@Test
public void fun2() throws Exception{//将Map的内容直接写入一个bean中
Map<String,String> map=new HashMap<String,String>();
map.put("username", "guodaxia");
map.put("password","961012gz");
map.put("age", "21");
Student stu=new Student();
BeanUtils.populate(stu, map);
System.out.println(stu);
}
@Test
public void fun3(){
Map<String,String> map=new HashMap<String,String>();
map.put("username", "guodaxia");
map.put("password","961012gz");
map.put("age", "21");
Student stu=CommonUtils.toBean(map,Student.class);
System.out.println(stu);
}
}
package com.itcast.utils;
import java.util.Map;
import java.util.UUID;
import org.apache.commons.beanutils.BeanUtils;
public class CommonUtils {
/**
* 生成不重复的32位长的大写字符串
* @return
*/
public static String uuid(){
return UUID.randomUUID().toString().replace("-", "").toUpperCase();
}
/**
* 把map转换成指定类型的javabean对象
* @param map
* @param clazz
* @return
*/
public static <T> T toBean(Map<String, String> map,Class<T> clazz){
try {
T bean = clazz.newInstance();
BeanUtils.populate(bean, map);
return bean;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
使用了BeanUtils的简单操作的更多相关文章
- x01.MagicCube: 简单操作
看最强大脑,发现魔方还是比较好玩的,便买了一个,对照七步还原法,居然也能成功还原. 为什么不写一个魔方程序呢?在网上找了找,略作修改,进行简单操作,还是不错的,其操作代码如下: protected o ...
- js简单操作Cookie
贴一段js简单操作Cookie的代码: //获取指定名称的cookie的值 function getCookie(objName) { var arrStr = document.cookie.spl ...
- GitHub学习心得之 简单操作
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 前言 本文对Github的基本操作进行了总结, 主要基于以下文章: http://gitre ...
- Linq对XML的简单操作
前两章介绍了关于Linq创建.解析SOAP格式的XML,在实际运用中,可能会对xml进行一些其它的操作,比如基础的增删该查,而操作对象首先需要获取对象,针对于DOM操作来说,Linq确实方便了不少,如 ...
- Linux 中 Vi 编辑器的简单操作
Linux 中 Vi 编辑器的简单操作 Vi 编辑器一共有3种模式:命名模式(默认),尾行模式,编辑模式.3种模式彼此需要切换. 一.进入 Vi 编辑器的的命令 vi filename //打开或新 ...
- python(pymysql)之mysql简单操作
一.mysql简单介绍 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle.sqlserver等等,这些数据库软件在windows上安装都非常的方便,在Linux上如果要安装数据库 ...
- ZooKeeper系列3:ZooKeeper命令、命令行工具及简单操作
问题导读1.ZooKeeper包含哪些常用命令?2.通过什么命令可以列出服务器 watch 的详细信息?3.ZooKeeper包含哪些操作?4.ZooKeeper如何创建zookeeper? 常用命令 ...
- ORACLE的安装与网页版创建表空间的简单操作以及PLsql的简单操作
1.oracle的安装: 安装简单易学,在这里不做解释.下载看装包后耐心等待,注意安装目录不要有中文字符,尽量按照指定目录进行安装.安装完成后会占用有大约5g的内存. 如果要卸载oracle,需要用其 ...
- C#反射技术的简单操作(读取和设置类的属性)
public class A { public int Property1 { get; set; } } static void Main(){ A aa = new A(); Type type ...
随机推荐
- 你必须知道的ADO.NET
原文:http://www.cnblogs.com/liuhaorain/archive/2012/02/06/2340409.html 1. 什么是ADO.NET? 简单的讲,ADO.NET是一组允 ...
- HDU 1397 Goldbach's Conjecture(二分,查找素数)
题目意思很简单,就是找n=p1+p2的种类数,具体看题目吧. 次重点是查找一定范围内的素数: 重点是用二分查找,不然会超时!!! #include<stdio.h> #include< ...
- 【转】Linux写时拷贝技术(copy-on-write)
http://www.cnblogs.com/biyeymyhjob/archive/2012/07/20/2601655.html 源于网上资料 COW技术初窥: 在Linux程序中,fork()会 ...
- libevent功能使用简介
http://blog.csdn.net/happyanger6/article/details/7272324 1. 介绍 libevent是一个用来开发可扩展的网络服务器的事件通知函数库.当一个文 ...
- 在Ogre中加载自己的资源包
转自:http://www.cnblogs.com/minggoddess/archive/2011/02/19/1958472.html 由于数据保护的需要,一款游戏一般都会有自己独有的资源包,这样 ...
- java.lang.ClassNotFoundException: org.springframework.context.event.GenericApplicationListener ----good
Caused by: java.lang.NoClassDefFoundError: org/springframework/context/event/GenericApplicationListe ...
- linux网络相关
ethtool:http://www.ibm.com/developerworks/cn/linux/1304_wangjy_ethtools/ 网卡特性:http://blog.chinaunix. ...
- oracle11g 远程登录数据库
oracle11g 远程登录数据库比以往的任何版本都要简单,什么也不用做 1.OEM登录 在浏览器中直接输入,远程数据库的OEM网址,当然要把localhost或者主机名改成ip地址 https: ...
- Docker基础技术:DeviceMapper
在上一篇介绍AUFS的文章中,大家可以看到,Docker的分层镜像是怎么通过UnionFS这种文件系统做到的,但是,因为Docker首选的AUFS并不在Linux的内核主干里,所以,对于非Ubuntu ...
- LabelMe图像数据集下载
Download MATLAB Toolbox for the LabelMe Image Database 利用Matlab Toolbox工具箱下载图像库 一.下载Matlab Toolbox工具 ...