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()方法 ...
随机推荐
- Sql Server分页储存过程
--分页储存过程if exists (select * from sys.procedures where name='Page')drop proc Pagegocreate proc Page@P ...
- linux 新建用户和权限分配
1.创建新用户:testuser 命令:#useradd 选项 用户名 选项: -c comment 指定一段注释性描述. -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主 ...
- JS中冒泡排序,选择排序,快速排序
var arr = [1,4,2,9,7,6,5,4,7,5]; // 冒泡排序(通俗的说就是j 和 j+1打,谁赢了谁去后面) for(var i = 1;i<ar ...
- Android 状态栏开发
又好久没写了...还是记个笔记吧.这次关于Android手机App状态栏的各种处理做一个笔记. 场景一:需要做全屏,不看到手机状态栏信息(手机电量,信号等) 这种需求一般用的比较多的地方是App的Sp ...
- Sql Server Express 2005提示"failed to generate a user instance of sql server "
解决方法: 修改连接字符串“Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\mydb.mdf;Integrated Security ...
- AutoCompleteTextView 自定义提示样式
项目中用到AutoCompleteTextView 自动提示功能,如果用自带的ArrayAdapter就一种样式,非常丑,而且每一项提示文字过多的话不会自动换行. 所以自己自定义了一个适配器. 效果 ...
- 2018-10-19 00:13:35 ArrayList
获取集合元素的长度用的是size方法. 传入Object类型的值,返回boolean值的remove方法,含义是判断是否删除成功. 传入索引值的remove方法,返回的是被删除的元素. 修改值得set ...
- Python+Selenium笔记(十七):操作cookie
(一)方法 方法 简单说明 add_cookie(cookie_dict) 在当前会话中添加cookie信息 cookie_dict:字典,name和value是必须的 delete_all_cook ...
- APP主要测试类型及测试点总结
根据测试重点区分 一.功能性测试 根据产品需求文档编写测试用例: 根据设计文档编写测试用例: 根据UI原型图编写测试用例 二.UI测试 原型图/效果图对比 用户体验 数据模拟:需要考虑正式环境可能的数 ...
- HTTP host头
前几天,将一个host误配置为https,导致对方服务解析异常,排查半天,才发现是host导致,故整理一下HTTP host作用. Host:指定请求服务器的域名/IP地址和端口号. 作用:同一台机器 ...