导航

黑马程序员---内省JavaBean

Posted on 2012-02-24 22:42  酷鱼影子  阅读(144)  评论(0编辑  收藏  举报

------------- java培训、android培训、java博客、java学习型技术博客、期待与您交流! --------------

JavaBean简单来说是具有setter和getter方法的特殊类,该类将属性隐藏,并对外提供setter和getter方法。

示例:

packagecn.itcast.day1;

 

importjava.util.Date;

 

public class ReflectPoint {

    private Date birthday=new Date();

    private int x;

    public int y;

    public Date getBirthday() {

        return birthday;

    }

    public void setBirthday(Date birthday) {

        this.birthday = birthday;

    }

    public String str1="ball";

    public String str2="basketball";

    public String str3="itcast";

    public ReflectPoint(int x, int y) {

        super();

        this.x = x;

        this.y = y;

    }

    @Override

    public String toString(){

        return str1+":"+str2+":"+str3;

    }

    public int getX() {

        return x;

    }

    public void setX(int x) {

        this.x = x;

    }

    public int getY() {

        return y;

    }

    public void setY(int y) {

        this.y = y;

    }

   

}

2、package cn.itcast.day1;

mportjava.beans.IntrospectionException;

importjava.beans.PropertyDescriptor;

importjava.lang.reflect.InvocationTargetException;

import java.lang.reflect.Method;

 

importorg.apache.commons.beanutils.BeanUtils;

import org.apache.commons.beanutils.PropertyUtils;

 

public class IntroSpectorTest {

       publicstatic void main(String[] args) throws Exception{

              ReflectPointpt1=new ReflectPoint(3,5);

             

              //实用方法1,调用BeanUtils提供的工具,需要导入BeanUtils.jar包

              System.out.println(BeanUtils.getProperty(pt1,"x").getClass().getName());

              BeanUtils.setProperty(pt1,"x", "9");

              System.out.println(pt1.getX());

 

BeanUtils.setProperty(pt1, "birthday.time","11");

              System.out.println(BeanUtils.getProperty(pt1,"birthday.time"));

             

              //实用方法2:PropertyUtils,也需要导入PropertyUtils.jar包

PropertyUtils.setProperty(pt1,"x", 9);//PropertyUtils与BeanUtils有所不同,参数与源参数保持一致

              System.out.println(PropertyUtils.getProperty(pt1,"x").getClass());

             

       }