首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java Bean的反照

2012-09-04 
java Bean的反射直接上代码。?package com.test.beanpublic class Person {private String nameprivate i

java Bean的反射

直接上代码。

?

package com.test.bean;public class Person {private String name;private int age;private String sex;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;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}}
package com.test.bean;
import java.beans.BeanInfo;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.lang.reflect.Method;import org.apache.commons.beanutils.BeanUtils;public class BeanMain {/** * @param args * @throws Exception */public static void main(String[] args) throws Exception {Class<?> beanClass = Class.forName("com.test.bean.Person");Object obj = beanClass.newInstance();// 第一种方法String propertyName = "age";PropertyDescriptor pd = new PropertyDescriptor(propertyName, beanClass);// 按照属性名称得到属性相关类Method writer = pd.getWriteMethod();// 得到写的方法Method reader = pd.getReadMethod();// 得到读的方法writer.invoke(obj, 22);// 写方法操作Object age =  reader.invoke(obj);// 读方法操作System.out.println(age);// 第二种方法BeanInfo beanInfo = Introspector.getBeanInfo(beanClass);PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();for (PropertyDescriptor pd1 : pds) {// System.out.println(pd1.getName());if (pd1.getName().equals("name")) {writer = pd1.getWriteMethod();// 得到写的方法reader = pd1.getReadMethod();// 得到读的方法writer.invoke(obj,"haoran_10");// 写方法操作Object name =  reader.invoke(obj);// 读方法操作System.out.println(name);break;}}//第三种方法:通过开源jar包,优点:自动转换类型,支持级联操作BeanUtils.setProperty(obj, "sex", "man");System.out.println(BeanUtils.getProperty(obj, "sex"));}}
?

热点排行