java反射對實體類取值和賦值


public static void checkDesignerEdit(Object dtos) throws Exception {
        Class  dtosClass = dtos.getClass();
//獲得類的聲明的字段 Field createTime
= dtosClass.getDeclaredField("createTime");
//可訪問私有變量 createTime.setAccessible(
true);
//獲取實體屬性值 Date createDate
= (Date) createTime.get(dtos); String c = DateUtil.getFormateDateLong(createDate); String e = DateUtil.addDateMinut(c, 2880); String nowDate = DateUtil.getFormateDateLong(new Date()); int differ = DateUtil.getDatePoor(e, nowDate, 1, 0); Field workStatusF = dtosClass.getDeclaredField("workStatus"); workStatusF.setAccessible(true); int workStatus= (int) workStatusF.get(dtos); Field methodSetEdit = dtosClass.getDeclaredField("edit"); methodSetEdit.setAccessible(true); Field methodSetEditTime = dtosClass.getDeclaredField("edtiTime"); methodSetEditTime.setAccessible(true); if (differ > 0) { if (workStatus == 0 || workStatus == 10) {
//調用實體類的set方法進行賦值 methodSetEdit.set(dtos,
1); methodSetEditTime.set(dtos,(long) differ); } } else { if (workStatus == 13 || workStatus == 16) { methodSetEdit.set(dtos,1); methodSetEditTime.set(dtos,0L); } else { methodSetEdit.set(dtos,0); methodSetEditTime.set(dtos,0L); } } }
 public CommonResult worksList(String userId, int page, int pageSize) throws Exception  {
        PageHelper.startPage(page, pageSize);
        List<DesignDTO1> dtos = designMapper.worksList(userId);
        for (DesignDTO1 dto : dtos) {
//調用反射方法,實體類有公共的屬性和方法可調用 checkDesignerEdit(dto); } PageInfo p
= new PageInfo(dtos); Map map = new HashMap(); map.put("rows", p.getList()); map.put("totalCount", p.getTotal()); return CommonResult.success(map); }
//實體類

import com.fasterxml.jackson.annotation.JsonFormat;

import java.util.Date;

public class DesignDTO1 {
    private Integer id;
    /**
     * 作品編號
     */
    private String worksId;
    /**
     * 作品名稱
     */
    private String worksName;

    /**
     * 上傳時間
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date createTime;

    /**
     * 狀態status_show
     */
    private Integer status;
    /**
     * 狀態描述
     */
    private String statusMsg;
    /**
     * 作品封面圖(圖片名稱)
     */
    private String workCoverImg;

    /**
     * 是否可修改
     */
    private Integer edit;
    /**
     * 可修改剩余時間
     */
    private  Long edtiTime;

    /**
     * 業務狀態status
     */
    private Integer workStatus;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getWorksId() {
        return worksId;
    }

    public void setWorksId(String worksId) {
        this.worksId = worksId;
    }

    public String getWorksName() {
        return worksName;
    }

    public void setWorksName(String worksName) {
        this.worksName = worksName;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getStatusMsg() {
        return statusMsg;
    }

    public void setStatusMsg(String statusMsg) {
        this.statusMsg = statusMsg;
    }

    public String getWorkCoverImg() {
        return workCoverImg;
    }

    public void setWorkCoverImg(String workCoverImg) {
        this.workCoverImg = workCoverImg;
    }

    public Integer getEdit() {
        return edit;
    }

    public void setEdit(Integer edit) {
        this.edit = edit;
    }

    public Long getEdtiTime() {
        return edtiTime;
    }

    public void setEdtiTime(Long edtiTime) {
        this.edtiTime = edtiTime;
    }

    public Integer getWorkStatus() {
        return workStatus;
    }

    public void setWorkStatus(Integer workStatus) {
        this.workStatus = workStatus;
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM