内省(Introspector)操作JavaBean的属性
2016-06-05 09:43
423 查看
创建包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()); } } }
相关文章推荐
- 2016年团体程序设计天梯赛-初赛 - 后天 - Java
- 2016年团体程序设计天梯赛-初赛 - 奇偶分家 - Java
- 2016年团体程序设计天梯赛-初赛 - 重要的话说三遍 - Java
- 2016年团体程序设计天梯赛-初赛 - 谁先倒 - Java
- 2016年团体程序设计天梯赛-初赛 - 大笨钟 - Java
- 2016年团体程序设计天梯赛-初赛 - 到底有多二 - Java
- Collection
- java基础-I/O操作,模拟服务器
- 基于Rete算法的JAVA规则引擎
- java 利用webservice传输文件
- Java规则引擎工作原理及其应用
- JAVA数组的初始化
- 小结SpringMVC(二)
- SpringMVC显示上传文件
- SpringMVC路径配置
- SpringMVC文件上传(三)异常栈处理
- SpringMVC文件上传(二)指定文件
- SpringMVC文件上传(一)
- 小结SpringMVC(一)
- SpringMVC实现list表单(六)