BeanUtils工具包操作JavaBean

jopen 12年前發布 | 4K 次閱讀 TogetherJS

我們在操作JavaBean的時候 我們可以用Introspector的方式來操作,但是呢這樣需要我們寫大量的代碼 。 

Apache小組為我們提供了很有用的工具包來操作JavaBean    也就是BeanUtils工具包 ,這個可以到 apache.org 上面下載 commons-BeanUtils工具包,同時我們也要下載Logging也就是日志工具包 。   

我們下載好了BeanUtils工具包之后 打開之后 發現你面有一個docs  那個就是幫助文檔 介紹了 Beanutils工具包中各種類的使用 ,這里 我們主要用到BeanUtils類 

BeanUtils類中的所有方法都是靜態方法 我們通過它的getProperty  setProperty方法  等等方法    這里我們主要用到BeanUtils類 

首先我們應該將jar包加入到Eclipse的BuildPath中    然后我們才能使用BeanUtils工具包中的各種類 

下面是一個簡單的JavaBean

package me.test;
import java.util.Date;

public class BeanTest
{
  private int x  ;
  private Date birthday=new Date() ;
  public BeanTest(int x)
  {
   this.x=x ;
  }
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}

}


下面是操作

package me.test;
import java.lang.reflect.InvocationTargetException;
import java.util.*;
import org.apache.commons.beanutils.BeanUtils;
public class Test
{
   public static  void main(String []args) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException
   {
    BeanTest t=new BeanTest(6)  ;
    BeanUtils.setProperty(t,"x", 7);//設置x屬性   ,利用BeanUtils設置值的時候 值可以是任意原始類型 也可以是String類型  在web開發中我們用到的都是String類型 因為網頁間傳遞的是字串 如果我們不想進行字符串轉換 那個就用 PropertyUtils類 和  BeanUtils類有著同樣的作用只不過 PropertyUtils 不進行類型的轉換
    System.out.println(BeanUtils.getProperty(t,"x"));   //返回x屬性
    BeanUtils.setProperty(t,"birthday.year", "111") ;  //這是birthday的year的屬性值
    System.out.println(BeanUtils.getProperty(t,"birthday.year"));  //BeanUtils可以進行級聯設置
    Map m=BeanUtils.describe(t);    //將JavaBean的各種屬性以及值以Map的形式描述


   }

}
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!