内省(Introspector)操作JavaBean的属性
2016-06-04 23:05
399 查看
创建包package cn.itccast.introspector,在包下建javabean类Student,代码如下:
在包cn.itccast.introspector下建Demo类,操作Student类的属性
package cn.itccast.introspector; public class Student { private String name; private String password; private String email; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
在包cn.itccast.introspector下建Demo类,操作Student类的属性
package cn.itccast.introspector; import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.lang.reflect.Method; import org.junit.Test; public class Demo { //通过内省Introspector的 api操作bean的属性 @Test public void test() throws Exception{ //1. 通过属性描述器PropertyDescriptor的构造方法获取属性描述器, //此处获取Student类的name属性描述器 PropertyDescriptor pd=new PropertyDescriptor("name", Student.class); //2. 获取用于写name属性值的方法,相当于setName(String name)方法 Method write=pd.getWriteMethod(); //3.创建Student对象,设置name属性为maomao Student stu=new Student(); write.invoke(stu, "maomao"); //4. 获取用于读name属性的方法,相当于getName()方法 Method reader=pd.getReadMethod(); //5. 读取stu的name属性值,并打印,查看是否设置成功 String name=(String) reader.invoke(stu,null); System.out.println(name); } @Test public void test2() throws IntrospectionException{ //操作Bean的所有属性 //1. 通过Introspector类获得Bean对象的 BeanInfo BeanInfo bif=Introspector.getBeanInfo(Student.class); //2.通过 BeanInfo 来获取属性的描述器 PropertyDescriptor PropertyDescriptor pds[]=bif.getPropertyDescriptors(); //3.通过属性描述器就可以获取某个属性对应的 getter/setter 方法 for(PropertyDescriptor pd: pds){ System.out.println(pd.getName()); } } }
相关文章推荐
- java 反射加载类的对象
- 虚拟机类加载机制
- java 实现以字符为单位读取文件(3)
- java之内存管理
- java 实现以字节为单位读取文件(2)
- java 实现以行为单位读取txt文件(1)
- spring mvc返回类型
- java之泛型潜在错误
- java 创建文件和文件夹
- SpringMVC——接收请求参数和页面传参
- Java设计模式
- java FileOutputStream写入文件
- SpringMVC之matrixVariable
- JAVA并发编程
- java web工程怎样改名
- 详解spring中每个jar包的作用
- java 实现n个整数的全排列
- java反射机制
- (45). Spring Boot MyBatis连接Mysql数据库【从零开始学Spring Boot】
- Struts2-学习笔记系列(15)-ajax支持和JSON