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()方法 ...
随机推荐
- Three.js开发指南---学习使用几何体(第五章)
一 基础几何体 1 二维图形:二维图形都是基于x和y轴构建的,即展示的形式就是他们都是“直立”的,如果希望这些二维图形躺下,则需要将几何体沿着x轴向后旋转1/4圈 mesh.rotation.x=-M ...
- CentOS7部署Django项目
1. 云服务器 这里使用的是腾讯云选择系统:CentOS7.3 记住云服务器登录密码 2. 配置Python3环境 默认Python环境为python2.7,yum安装是需要python2的环境的 安 ...
- html 手机web超出屏幕宽度的内容不换行,并产生横向滚动条
html 手机web超出屏幕宽度的内容不换行,并产生横向滚动条 white-space: nowrap;overflow-x: scroll;
- 微信小程序< 3 > ~ 微信小程序开源项目合集
简介 移动开发者想学习微信小程序需要学习一点HTML ,CSS和JS才能够比较快速的上手,参考自己学习Android学习过程,阅读源码是一个很好的方式,所以才收集了一些WeApp的开源项目. awes ...
- SD从零开始41-44
[原创] SD从零开始41 科目确定(Account determination) 使用科目确定Using Account Determination 你将需要在几个不同的领域确定将要记账的科目: 用 ...
- python新生类和经典类简单说明
经典类: #!/usr/bin/env python #*-* coding:utf-8 *-* class A(): def __init__(self): print 'my name is GF ...
- leveldb源码分析--SSTable之TableBuilder
上一篇文章讲述了SSTable的格式以后,本文结合源码解析SSTable是如何生成的. void TableBuilder::Add(const Slice& key, const Slice ...
- C# winform基础 1、Timer不起作用 2、 设置图片透明
1.设置图片透明 this.pibox.BackColor = System.Drawing.Color.Transparent; //将背景设置为透明 this.pibox.Parent = la ...
- MySQL安全策略
0.导读 MySQL被运用于越来越多的业务中,在关键业务中对数据安全性的要求也更高,如何保证MySQL的数据安全? MySQL被运用于越来越多的业务中,在关键业务中对数据安全性的要求也更高,如何保证M ...
- cut切割,简单的取列
cut 切割,简单的取列命令. -d 指定分隔符 -f 数字 取第几列 -c n-m 取n列到m列字符. //提取字符,不常用 例如:已知bqh.txt文件里的内容为“I am bqh myqq is ...