java開發BeanUtils類解決實體對象間賦值

實體對象之間相互傳值,如:VO對象的值賦給Entity對象,是代碼中常用功能,如果通過get、set相互賦值,則很麻煩,借助工具類BeanUtils可以輕松地完成操作。

BeanUtils依賴包導入

BeanUtils 是 Apache commons組件的成員之一,主要用於簡化JavaBean封裝數據的操作。使用BeanUtils必須導入相應的jar包,BeanUtils的maven坐標為

<dependency>
    <groupId>commons-beanutils</groupId>
    <artifactId>commons-beanutils</artifactId>
    <version>1.9.4</version>
</dependency>

示例

將前端傳來的學生排名信息(StudentVo對象)分別賦給學生對象(StudentEntity)和排名對象(RankingEntity),這三個類代碼如下:

@Data
public class StudentVo {
    private String sno;
    private String sname;
    private Integer ranking;
    private String schoolTerm;

    public String toString(){
        return "studentVo對象的值  sno:"+getSno()+" sname:"+getSname()+" ranking:"+getRanking().toString()+" schoolTerm:"+getSchoolTerm();
    }
}
@Data
public class StudentEntity {
    private String sno;
    private String sname;
    private Integer sage;

    public String toString(){
        return "studentEntity對象的值 sno:"+getSno()+" sname:"+getSname()+" sage:"+getSage();
    }
}
@Data
public class RankingEntity {
    private String sno;
    private Integer ranking;
    private String schoolTerm;

    public String toString(){
        return "rankingEntity對象的值 學號:"+getSno()+" 名次:"+getRanking().toString()+" 學期:"+getSchoolTerm();
    }
}

將VO對象的值賦給實體對象,通過BeanUtils.copyProperties(目標,源),將源實體對象的數據賦給目標對象,隻把屬性名相同的數據賦值,目標中的屬性如果在源中不存在,給null值,測試代碼如下:

public class App 
{
    public static void main( String[] args ) throws InvocationTargetException, IllegalAccessException {
        StudentVo studentVo = new StudentVo();
        studentVo.setSno("1");
        studentVo.setRanking(20);
        studentVo.setSname("胡成");
        studentVo.setSchoolTerm("第三學期");

        System.out.println(studentVo.toString());
        StudentEntity studentEntity = new StudentEntity();

        BeanUtils.copyProperties(studentEntity,studentVo);
        System.out.println(studentEntity.toString());

        RankingEntity rankingEntity = new RankingEntity();
        BeanUtils.copyProperties(rankingEntity,studentVo);
        System.out.println(rankingEntity.toString());
    }
}

運行結果:

在這裡插入圖片描述

StudentVo 中不存在sage屬性,獲得studentEntity對象的sage的值為null

以上就是java開發BeanUtils類解決實體對象間賦值的詳細內容,更多關於使用BeanUtils工具類解決實體對象間賦值的資料請關註WalkonNet其它相關文章!

推薦閱讀: