JAVA工具包_BeanUtils
简介
大多数的java开发者通常在创建Java类的时候都会遵循JavaBean的命名模式,对类的属性生成getters方法和setters方法。通过调用相应的getXxx和setXxx方法,直接访问这些方法是很常见的做法。BeanUtils就是一种方便我们对JavaBean进行操作的工具,是Apache组织下的产品。
前提
- commons-beanutils-1.9.3.jar
- commons-logging-1.2.jar(由于commons-beanutils-1.9.3.jar依赖与commons-loggin否则会报错:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory)
代码清单,测试用的JavaBean:User.java
public class User {
// 姓名
private String userName;
// 年龄
private int age;
// 生日
private Date birthday;
public User() {
}
public User(String userName, int age) {
this.userName = userName;
this.age = age;
}
public User(String userName, int age, Date birthday) {
this.userName = userName;
this.age = age;
this.birthday = birthday;
}
public int getAge() {
return this.age;
}
public String getUserName() {
return this.userName;
}
public void setAge(int age) {
this.age = age;
}
public void setUserName(String userName) {
this.userName = userName;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@Override
public String toString() {
return "User [userName=" + userName + ", age=" + age + ", birthday=" + birthday + "]";
}
}
测试代码清单
public class BeanUtilsDemo {
public static void main(String[] args) throws Exception {
User user = new User("Jim", 1, new Date(123456798));
// 获取属性值
System.out.println("userName :" + BeanUtils.getProperty(user, "userName"));
// 设置引用类型属性
BeanUtils.setProperty(user, "userName", "testBeanUtils");
System.out.println("user = " + user);
// 设置对象类型属性方法一
BeanUtils.setProperty(user, "birthday", new Date(987652122564L));
System.out.println("user = " + user);
// 设置对象类型属性方法二
BeanUtils.setProperty(user, "birthday.time", 45641246546L);
System.out.println("user = " + user);
// 设置自定义对象属性方法一
System.out.println("WayOne \n Before:\n" + user);
Hobby hobby = new Hobby("篮球", "每天一小时,健康一辈子");
BeanUtils.setProperty(user, "hobby", hobby);
System.out.println("After:\n" + user);
// 设置自定义对象属性方法二,这里需要注意,如果hobby为null,
// 则这样是设置值是设置不进去的,只有当对象不为空的时候才能设置进去
System.out.println("WayTwo \n Before:\n" + user);
BeanUtils.setProperty(user, "hobby.hobbyName", "乒乓球");
System.out.println("user = " + user);
BeanUtils.setProperty(user, "hobby", null);
BeanUtils.setProperty(user, "hobby.desc", "我国乒乓第一,我爱国");
System.out.println("After:\n" + user);
}
}
JAVA工具包_BeanUtils的更多相关文章
- Neo4j图数据库管理系统开发笔记之一:Neo4j Java 工具包
1 应用开发概述 基于数据传输效率以及接口自定义等特殊性需求,我们暂时放弃使用Neo4j服务器版本,而是在Neo4j嵌入式版本的基础上进行一些封装性的开发.封装的重点,是解决Neo4j嵌入式版本Emb ...
- 如何在jmeter中调用自己写的java工具包
本文介绍在jmeter中调用自己写java工具包,并非直接继承jmeter提供的java sample request接口. 工具/原料 jmeter eclipse 方法/步骤 通常用jmeter做 ...
- [置顶] 提高生产力:开源Java工具包Jodd(Java的”瑞士军刀”)
官方网站:http://jodd.org/ 下载地址:http://jodd.org/download/index.html Jodd=tools + ioc + mvc + db + aop + t ...
- 提高生产力:开源Java工具包Jodd(Java的”瑞士军刀”)
官方网站:http://jodd.org/ 下载地址:http://jodd.org/download/index.html Jodd=tools + ioc + mvc + db + aop + t ...
- GitHub Java项目推荐|功能丰富的 Java 工具包|提高开发效率
GitHub Java项目推荐|功能丰富的 Java 工具包|提高开发效率 功能丰富的 Java 工具包.它帮助我们实现了常用的工具方法,从而减少代码的体积,提高开发效率.该项目最初是作者工作项目中的 ...
- java工具包一:日期处理
作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/7846812.html 邮箱:moyi@moyib ...
- java 工具包
https://www.cnblogs.com/aligege/p/8521934.html https://gitee.com/loolly/hutool https://blog.csdn.net ...
- Java工具包之-Guava
https://blog.csdn.net/zmx729618/article/details/78540026 https://my.oschina.net/realfighter/blog/349 ...
- java开源工具包-Jodd框架
java开源工具包-Jodd框架 / 2019-07-24 Jodd是一个Java工具包和微型框架,Jodd 工具包含一些实用的工具类和小型框架,增强了 JDK 提供很多强大的功能,可以帮助实现 ...
随机推荐
- 30 System类
System类代表系统,系统级的很多属性和控制方法都放置在该类的内部.该类位于java.lang包.由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类.其内部的成员变量 ...
- List<Map<String,Object>> 中文排序
@RequestMapping(value = "/getBaseCodess", method = RequestMethod.GET) public ModelAndView ...
- python系统模块
Python中大多数系统接口都集中在两个模块:sys和os.这么说有点过于简单化 还有一些其他的表转模块也属于这个领域他们包括: glob 用于文件名的扩展 socket 用于网络连接和进程间通信(I ...
- c++ GetAsyncState() 函数
函数原型 SHORT GetAsyncKeyState(int vKey); 例:若判断 回车键 if(GetAsyncKeyState(VK_RETURN)&0x8000) ( return ...
- 在sublime上安装markdown插件(win10)
1.markdown插件安装 --ctrl+shift+p --在命令框中选中 package control:install package 选中它 按回车 --在命令框中输入 markdown, ...
- webstorm常见快捷方法与遇到的一些问题
1.动态添加标签快捷写法 例子:生成10个文字按顺序编号的class为task-item的div 2.win10下webstorm的terminal无法输入? 打开一个 cmd.exe,标题栏 右键 ...
- JavaScript中深拷贝实现
JavaScript 中深拷贝实现 拷贝时候涉及到: 1.循环结构 2.判断数组 Array 还是对象 Object 函数实现 /** * 获取满足条件的数组中的第一个元素 * @param ...
- bzoj1059题解
[解题思路] 因为只要验证可行性,所以考虑行和考虑列是等价的,故我们只考虑行的交换操作. 这样,拆一波点,把每一行拆成两个点,左边为原交换行,右边为目标交换行,原问题等价于能否对这个二分图进行完全匹配 ...
- NX二次开发-获取按钮的ID UF_MB_ask_button_id
NX9+VS2012 1.打开D:\Program Files\Siemens\NX 9.0\UGII\menus\ug_main.men 找到装配和PMI,在中间加上一段 TOGGLE_BUTTON ...
- gulp 安装与使用
一.Gulp 是基于node.js 流(stream)的一个前端自动化构建工具,可以使用它构建自动化工作流程,简化我们工作量,让我们把重点放在功能的开发上,从而提高我们的开发效率和工作质量 我们可以用 ...