PropertyDescriptor类:
PropertyDescriptor类表示JavaBean类通过存储器导出一个属性。主要方法:
1. getReadMethod(),获得用于读取属性值的方法
2. getWriteMethod(),获得用于写入属性值的方法
注:避免使用拼装方法名,反射获取Method对象。如tId,方法名格式与其他不统一,拼装方法名会错误。
实体类:
- package com.learn.pojo;
- public class person {
- private String tId;
- private String id;
- public String getId() {
- return id;
- }
- public void setId(String id) {
- this.id = id;
- }
- public String gettId() {
- return tId;
- }
- public void settId(String tId) {
- this.tId = tId;
- }
- }
- package com.learn.reflect;
- import java.beans.IntrospectionException;
- import java.beans.PropertyDescriptor;
- import java.lang.reflect.InvocationTargetException;
- import com.learn.pojo.person;
- public class ReflectDemo3 {
- public static void main(String[] args)
- throws IntrospectionException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
- person p = new person();
- p.setId("0");
- PropertyDescriptor prop = new PropertyDescriptor("id", person.class);
- // 获取getter方法,反射获取id值
- Object str = prop.getReadMethod().invoke(p);
- // 获取setter方法,反射赋值
- prop.getWriteMethod().invoke(p, "1");
- System.out.println("获取ID值:" + str);
- System.out.println("赋值ID:" + p.getId());
- }
- }
- 获取ID值:0
- 赋值ID:1