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 提供很多强大的功能,可以帮助实现 ...
随机推荐
- mysql 8+ 忘记root密码 解决方案
在安装完数据库后,由于自己不小心直接关闭了安装窗口,或者长时间没有使用root用户登录系统,导致忘记了root密码,这时就需要重置MySQL的root密码.当然,最简单方式自然是删除数据库的data目 ...
- jq-demo-拖拽
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- php注册 及审核练习
1.注册界面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...
- thinkphp 表单合法性检测
在处理表单提交的数据的时候,建议尽量采用Think\Model类提供的create方法首先进行数据创建,然后再写入数据库. 大理石平台厂家 create方法在创建数据的同时,可以进行更为安全的处理操作 ...
- 拾遗:{rpm、yum及源码方式管理软件包}
一.yum配置文件位置 /etc/yum.conf /etc/yum.repos.d/*.repo 二.yum常用命令 install pkgs reinstall pkgs update pkgs ...
- C++之关键字&标识符命名规则
关键字 **作用:**关键字是C++中预先保留的单词(标识符) * **在定义变量或者常量时候,不要用关键字** C++关键字如下: 提示:在给变量或者常量起名称时候,不要用C++得关键字,否则会产生 ...
- 更改idea启动内存信息
1.到idea的安装目录的bin下,找idea64.exe.vmoptions 文件 2.更改参数 对应的参数解释: -Xms1024m 设置IDEA初时的内存大小,提高Java程序的启动速度. ...
- CSS布局标准
回顾历史,CSS1于1996.12.17发正式版,它是为辅助HTML的展现效果而生的.1998.5.12,CSS2发正式版.随后发修订版CSS2.1,纠正了CSS2中的一些错误.注意从CSS2起,CS ...
- iphone11系统输入框的光标位置不正常
本人的系统是11.3的是正常的,却发现测试机的11.1和11.2的光标位置在输入框的下边.百度一下,很多人有同样的问题,在此记录一下 解决办法一: //弹框弹出后执行如下代码 $('body').cs ...
- 去哪儿的 源码 个人解析(2) router
1.引进路由 import Vue from 'vue' 2.使用路由 Vue.use(Router) 3.路由注册 export default new Router({ routes: [{ ...