Java设置以及获取JavaBean私有属性进阶
在上一篇博客中讲到使用Java提供的原生API设置以及获取一个JavaBean的私有属性。
但是使用Java的原生API过于复杂,有没有更加简单的方法呢?答案是肯定的。下面介绍一个开元工具包来非常方便的解决这个问题。
准备条件:apache的开源库commons-beanutils.jar,commons-logging.jar。将这两个包导入项目中。
主要用到两个类:(两种快速解决上述问题的方法)
1.BeanUtils
2.PropertyUtils
第一种方案:
package yw.bean.improve; import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.PropertyUtils; import yw.javaben.BeanEntity; /**
* 获取javabean的私有属性提高篇
* @author yw-tony
*
*/
public class BeanImproveTest { public static void main(String[] args) throws Exception{
BeanEntity bean = new BeanEntity();
/**
* apache的一个开源工具包提供的操作javabean属性的工具类
* 提供一个设置JavaBean私有属性的一个方法(共有属性当然也是可以获取到的)
* 第一个参数:目标JavaBean
* 第二个参数:属性名称
* 第三个参数:要设置的属性值
*/
BeanUtils.setProperty(bean, "x", "89");
/**
* 获取设置的属性值
*
* 第一个参数:目标JavaBean
* 第二个参数:目标属性名称
*/
String propName = BeanUtils.getProperty(bean, "x");
//打印输出
System.out.println(propName); }
}
第二种方案:
package yw.bean.improve;
import org.apache.commons.beanutils.PropertyUtils;
import yw.javaben.BeanEntity;
public class BeanImproveTest2 {
public static void main(String[] args) throws Exception {
BeanEntity bean = new BeanEntity();
/**
* 设置目标JavaBean属性值的方法
* 第一个参数:目标JavaBean
* 第二个参数:目标属性名称
* 第三个参数:设置目标属性值
*/
PropertyUtils.setProperty(bean, "x", 100);
/**
* 获取目标属性值的方法
* 第一个参数:目标JavaBean
* 第二个参数:目标JavaBean的属性名称
*/
int x = (int)PropertyUtils.getProperty(bean, "x");
System.out.println(x);
}
}
使用上述两种方法都可以得到上一篇博客想要的结果。
怎么样?是不是更简单,更方便!
Java设置以及获取JavaBean私有属性进阶的更多相关文章
- java利用反射获取类的属性及类型
java利用反射获取类的属性及类型. import java.lang.reflect.Field; import java.math.BigDecimal; import java.util.Map ...
- 封装transform函数(设置和获取transform的属性和属性值)
(function (w) { /** * 设置或者获取元素的transform属性值 * @param node 要设置的元素 * @param param 变换属性: translate\scal ...
- 通过javascript,使用struts2的ognl获取JavaBean的属性.
1)在Action中,声明一个Lock对象,并生成好setter/getter,在Action调用方法中(这里是findOnMap,需要先调用setLock方法设置好信息) private Lock ...
- java 利用Class获取类的属性信息
package junereflect624; import java.lang.reflect.Modifier; class A { } interface B{ } interface C{ } ...
- 使用commons-beanutils迭代获取javabean的属性
NoteEntity entity = new NoteEntity(); entity.setNote001("a1"); entity.setNote002("a2& ...
- Java使用PropertyDescriptor获取实体类中私有属性的值,并给私有属性赋值
大家都知道Java类中的私有的(private)属性是获取不到的(即使使用继承依然获取不到),那如果非要获取私有属性的值怎么办呢?一般的做法是将该java类封装称为一个JavaBean,即封装该私有属 ...
- java中的反射,知道类名创建类,还可以设置私有属性的值
刚刚学到了反射,感觉反射的功能好强大,所以想写篇博客记录下自己的学习成果. 利用反射来创建对象. Class c1=Class.forName("test.Person");//通 ...
- attr设置checked,disabled等属性失效的问题,jquery的attr和prop的区别
最近做项目遇到一个问题,radio设置了默认checked值,attr("checked",true)切换checked值失效 最后发现是jquery1.6版本之后,attr和pr ...
- PHP中的__get()和__set()方法获取设置私有属性
在类的封装中,获取属性可以自定义getXXX()和setXXX()方法,当一个类中有多个属性时,使用这种方式就会很麻烦.为此PHP5中预定义了__get()和__set()方法,其中__get()方法 ...
随机推荐
- HTML(5)基础
1.html常用标签 <pre>...</pre>:标识预定义文本 <a>是anchor的缩写,<a>标签定义锚点和超链接,<a>常与hre ...
- HTML5+CSS (简易nav设计)
HTML部分: <!DOCTYPE html><html> <head> <title></title> <meta charset= ...
- 在线报表设计实战系列 – 制作多Y轴组合图表(8)
葡萄城报表是一套强大的报表开发和系统搭建工具,既能与您开发的报表软件项目紧密集成,也可独立部署运行,支持多数据源,具有无编码.灵活.稳定等特性,可以帮您快速搭建专业的报表软件系统,实现各类报表的设计. ...
- 在ActiveReports页面报表中显示Google地图
有些报表需求中需要我们显示国家.城市等地址信息,在报表中添加地图信息会让报表给最终用户代码更多有效信息. 在报表中可以将地图作为图片添加进来,当一个图片显示在报表中时,该图片必须存放到本地计算机或者服 ...
- 类与接口(五)java多态、方法重写、隐藏
一.Java多态性 面向对象的三大特性:封装.继承.多态. 多态的类型,分为以下两种: 编译时多态: 指的是 方法重载.编译时多态是在编译时确定调用处选择那个重载方法,所以也叫 静态多态,算不上真正的 ...
- 【Python】读取excel数据
'''python3读取excle数据''' import xlrd workbook = xlrd.open_workbook(r'test.xls', encoding_override='gbk ...
- webpack+sass+vue 入门教程(一)
一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...
- windows端安装maven
1.开发环境 操作系统:Windows 7 2.安装步骤 (1)下载最新的maven压缩包 maven官网:http://maven.apache.org/ 当前最新版本下载地址:http://mav ...
- APP主要测试类型及测试点总结
根据测试重点区分 一.功能性测试 根据产品需求文档编写测试用例: 根据设计文档编写测试用例: 根据UI原型图编写测试用例 二.UI测试 原型图/效果图对比 用户体验 数据模拟:需要考虑正式环境可能的数 ...
- 总结获取原生JS(javascript)的父节点、子节点、兄弟节点
关于原生JS获取节点,一直是个头疼的问题,而且调用方法的名字又贼长了,所以我选择用JQ,好像跑题了-- 话不多说看代码 获取父节点 及 父节点下所有子节点(兄弟节点) <ul> <l ...