首页
技术知识库
Task工作计划
网站简介
DON框架
后台管理
文章分类
JAVA
框架知识
操作系统
容器相关
数据库层
优化技术
界面编程
网络编程
开发工具
GO语言
其他
读书随笔
观影随笔
每日随笔
APP
javabean的标准操作
所属分类
:[JAVA] |
创建时间
:2014-11-26 |
文章属性
:原创 |
文章来源
:http://windfly.cn |
作者
:windfly
##标准javabean >属性私有化,提供属性的get/set方法,标准的javabean操作只针对方法 ##内置的api调用get/set方法 ###方案一 ``` User user = new User(); // 目标实例 BeanInfo beanInfo = Introspector.getBeanInfo(User.class,Object.class); // 准备调用方法,递归到Object父类时停止调用(含Object类) PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); // 取到所有get/set方法 for (PropertyDescriptor propertyDescriptor2 : propertyDescriptors) { String fieldname = propertyDescriptor.getName(); // 当前调用的属性名 getName的属性名认为是 name Object getvalue = propertyDescriptor.getReadMethod().invoke(user); // 调用get方法 propertyDescriptor.getWriteMethod().invoke(user,name); // 调用set方法 } ``` ###方案二 ``` User user = new User(); // 目标实例 PropertyDescriptor propertyDescriptor = new PropertyDescriptor("name", User.class); // 指定要调用的get/set方法 Object invoke = propertyDescriptor.getReadMethod().invoke(user); // 调用get方法 ``` ###区别 >1. 方案一代码过多,需要循环,方案二代码少,不用循环 2. 方案一类中只要有对应的get方法就可调用getReadMethod有对应的set方法就可调用getWriteMethod方法。方案二中必须要同时有get/set方法,否则会抛异常
返回