黑马程序员——JAVA笔记——JavaBean

来源:互联网 发布:救援夫妇知乎 编辑:程序博客网 时间:2024/06/06 12:26

------- android培训、java培训、期待与您交流! ----------


JavaBean:为一种特殊的类,类中大多为私有字段,并通过固定的名称,也就是set、get方法来操作信息。

IntroSpector(内省):为了更好的操作对象的属性而出现,有利于操作对象的属性,减少代码的书写。


内省访问JavaBean代码的方法有两种:

1、通过PropertyDescriptor来操作。

import java.beans.PropertyDescriptor;import java.lang.reflect.Method;public class Demo1{public static void main(String[] args) throws Exception{Student stu=new Student("zhangsan",22);String PropertyName="name";PropertyDescriptor pd=new PropertyDescriptor(PropertyName,Student.class);Method getMethod=pd.getReadMethod();Method setMethod=pd.getWriteMethod();Object name=getMethod.invoke(stu);System.out.println(name);setMethod.invoke(stu,"lisi");System.out.println(getMethod.invoke(stu));}}class Student{private String name;private int age;Student(String name,int age){this.name=name;this.age=age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}


2、通过IntroSpector中的getBeanInfo方法获取BeanInfo,再通过BeanInfo获取PropertyDescriptors,最后通过PropertyDescriptor获取信息。

import java.beans.BeanInfo;import java.beans.Introspector;import java.beans.PropertyDescriptor;public class Demo1{public static void main(String[] args) throws Exception{Student stu=new Student("zhangsan",22);String PropertyName="name";BeanInfo beaninfo = Introspector.getBeanInfo(Student.class);PropertyDescriptor[] pds = beaninfo.getPropertyDescriptors();for(PropertyDescriptor pd:pds){if(pd.getName().equals(PropertyName)){System.out.println(pd.getReadMethod().invoke(stu));break;}}}}class Student{private String name;private int age;Student(String name,int age){this.name=name;this.age=age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}


通过PropertyDescriptor获取信息的方法:

getName() 获得属性的名字。

getPropertyType() 获得属性的class对象;

getReadMethod() 获得用于读取属性值的方法;

getWriteMethod() 获得用于写入属性值的方法;

0 0
原创粉丝点击