java PropertyDescriptor的用法
1.作用域
PropertyDescriptor中文叫属性描述器,是jiava JavaBean的内省与BeanUtils库
JavaBean是一种特殊的类,主要用于传递数据信息,这种类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。如果在两个模块之间传递信息,可以将信息封装进JavaBean中,这种对象称为“值对象”(Value Object),或“VO”。方法比较少。这些信息储存在类的私有变量中,通过set()、get()获得。
Java JDK中提供了一套API用来访问某个属性的getter/setter方法,这就是内省。
JAVA反射机制中操作或者获取私有属性(必须有get/set方法)的《java JavaBean》类,也就是我们常说的VO类,例如:
public class TestClass{private String name;public String getName() {return name;}public void setName(String name) {this.name = name;} }
2. PropertyDescriptor JDK内省类库:
PropertyDescriptor类:(属性描述器)
PropertyDescriptor类表示JavaBean类通过存储器导出一个属性。主要方法:
1. getPropertyType(),获得属性的Class对象;
2. getReadMethod(),获得用于读取属性值的方法;
3. getWriteMethod(),获得用于写入属性值的方法;
4. hashCode(),获取对象的哈希值;
5. setReadMethod(Method readMethod),设置用于读取属性值的方法;
6. setWriteMethod(Method writeMethod),设置用于写入属性值的方法。
3. 其他和PropertyDescriptor 相关的类或者工具包
1. Introspector类: 将JavaBean中的属性封装起来进行操作 得到 BeanInfo
2. BeanInfo操作PropertyDescriptor
3. BeanUtils包
<dependency><groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId><version>1.9.4</version></dependency>
4.使用方法
import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;/*** @author zeng* @since 2022/6/21*/
public class MainApp {public static void main(String[] args) throws IntrospectionException {final PropertyDescriptor descriptor = new PropertyDescriptor("name",TestClass.class);final Class<?> type = descriptor.getPropertyType(); //获取属性的class对象System.out.println(type.getTypeName());// java.lang.Stringfinal Method readMethod = descriptor.getReadMethod();//获得用于读取属性值的方法;System.out.println(readMethod.getName());// getNamefinal Method witeMethod = descriptor.getWriteMethod();//获得用于写入属性值的方法;System.out.println(witeMethod.getName());// setName// 设置读写方法就不过多介绍了,太麻烦,如果不会需要使用请@我}class TestClass{private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}}
}
java PropertyDescriptor的用法相关推荐
- 四种Java线程池用法解析
四种Java线程池用法解析 本文为大家分析四种Java线程池用法,供大家参考,具体内容如下 http://www.jb51.net/article/81843.htm 1.new Thread的弊端 ...
- 2020-12-17 【 java优先队列的用法】
java优先队列的用法 peek是top() 只取最上面的元素 poll是pop() 弹出 add是添加 push 类的比较器,相对于仿函数 struct cmp{ bool operator ()( ...
- java中import用法
java中import用法 单类型导入(single-type-import),例如import java.io.File; 按需类型导入(type-import-on-demand),例如 impo ...
- java.nio.ByteBuffer用法小结
转载自 java.nio.ByteBuffer用法小结 在NIO中,数据的读写操作始终是与缓冲区相关联的.读取时信道(SocketChannel)将数据读入缓冲区,写入时首先要将发送的数据按顺序填入 ...
- Java Spring IOC用法
Java Spring IOC用法 Spring IoC 转载于:http://www.cnblogs.com/flowwind/p/4772375.html 在前两篇文章中,我们讲了java web ...
- 设计模式--模板方法模式--Java实现-- java访问控制关键字用法
1.什么是模板方法 2.具体实现步骤 5.优缺点 6适用场景 java访问控制关键字用法 – protected的解释 (1)私有的:用关键字private修饰,只有本类可见. (2)默认的:不用访问 ...
- Java List相关用法
Java List相关用法 1. subList 2. Queue接口 3. Deque接口 4. List常用算法 5. Collections.sort方法 6. Comparator接口 1. ...
- 设计模式 - 观察者模式(Observer Pattern) Java内置 用法
观察者模式(Observer Pattern) Java内置 用法 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26601659 ...
- 简明介绍java“包”的用法
简明介绍java"包"的用法 1. "包"的建立 "包"与文件夹对应,例如:package yanwu与文件夹yanwu对应. 程序wuha ...
最新文章
- leetcode算法题--连续的子数组的和
- tcp三次握手为啥不是4次
- HTTPS(身披SSL协议的HTTP)
- 两个Long类型真的不能直接用或比较么?其实可以
- 机器信息MachineInfo
- dabs是什么意思_cpdd是什么意思(网络语cpdd是什么梗啥意思)
- 漫步ASP.NET MVC的处理管线
- SQL Server2016 新功能之SQL安装篇
- java第一次作业0
- CSS 样式里面的逗号和空格之间的区别
- react 逆地理 高德地图_给高德新版地图点赞!出行服务竟然如此智能
- 【离散数学】集合论 第三章 集合与关系(1) 集合的概念与表示
- 视易服务器查看硬盘状态,Linux服务器使用Smartmontools检测硬盘状况 | 厘米天空
- 你只管打开这个网站,剩下的交给「卧槽」!
- 运动步数抽奖小程序开发
- 狼性的华为,是否有人性?
- matlab让legend横着排,echarts画一个饼图, orient: 'horizontal',图例横向排列,当图例比较多时,如何在第二排让图标一一对齐?...
- base64 string类 放不下_千夜空的推荐 | LOFTER(乐乎) - 让兴趣,更有趣
- 《狂人日记》 词语解释 | 经典语录
- 分布式进阶(十九) 基于集群的动态反馈负载均衡策略