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;
}
}

java反射对实体类取值和赋值的更多相关文章

  1. java反射对实体类取值和赋值,可以写成通过实体类获取其他元素的数据,很方便哦~~~

    项目中需要过滤前面表单页面中传过来的实体类的中的String类型变量的前后空格过滤,由于前几天看过一个其他技术博客的的java反射讲解,非常受益.于是,哈哈哈 public static <T& ...

  2. java反射遍历实体类属性和类型,并赋值和获取值

    /* * GetModelNameAndType.java * Version 1.0.0 * Created on 2017年12月15日 * Copyright ReYo.Cn */ packag ...

  3. c# 反射得到实体类的字段名称和值,DataTable转List<T>

    /// <summary> /// 反射得到实体类的字段名称和值 /// var dict = GetProperties(model); /// </summary> /// ...

  4. java中遍历实体类,获取属性名和属性值

    方式一(实体类): //java中遍历实体类,获取属性名和属性值 public static void testReflect(Object model) throws Exception{ for ...

  5. C#、Python中分别是怎么实现通过字符串获取实体类的值以及给实体类赋值

    一.引入 最近遇到一个项目里面的功能,在给实体类赋值的时候,由于赋值字段是动态生成的,所以如果用常用的方法(直接实体类的名称.字段名=要赋的值),将会生成很多无用的代码,所以找到了一个通过反射的赋值与 ...

  6. Java中遍历实体类(处理MongoDB)

    在实际过程中,经常要将实体类进行封装,尤其是处理数据库的过程中:因此,对于遍历实体类能够与数据库中的一行数据对应起来. 我是使用的环境是Spring boot,访问的数据库时MongoDB 实体类遍历 ...

  7. Java中的实体类--Serializable接口、transient 关键字

    在java中,实体类是一个非常重要的概念,我们可以在实体类中封装对象.设置其属性和方法等.关于实体类,也经常涉及到适配器模式.装饰者模式等设计模式.那么在实际代码开发中,关于实体类的注意事项有哪些呢? ...

  8. JAVA反射之Class类的练习

    package zhang; /** * JAVA反射之CLass类的练习 * * 在面向对象的语言里,万事万物皆对象,那么类是谁的对象呢? * 类的类型是CLass * * */ class Tes ...

  9. Java进阶(十一)部分数据类型取值范围

    java整型byte,short,int,long取值范围大小 在项目开发中,需要用到随机数的生成方法,代码如下: public static String randomizeNumber(int n ...

随机推荐

  1. Visual Studio Code使用指南

    简介 Visual Studio Code是一款免费开源的现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮.智能代码补全.自定义热键.括号匹配.代码片段.代码对比 Diff.GIT 等特性 ...

  2. 洛谷P4389 付公主的背包 [生成函数,NTT]

    传送门 同样是回过头来发现不会做了,要加深一下记忆. 思路 只要听说过生成函数的人相信第一眼都可以想到生成函数. 所以我们要求 \[ ans=\prod \sum_n x^{nV}=\prod \fr ...

  3. VBS学习

    简介 VBS windows脚本 Microsoft visual basic script editionVBS 是visual basic的一个抽象子集,系统内置,不编译为二进制文件,(由host ...

  4. xpath 根据根节点找数据

  5. AngularJs中,如何在ng-repeat完成之后,执行Js脚本

    //ng-repeat生成4个li,生成后再执行自定义方法fn在每个li后加一根横线 <script> var myapp=angular.module('myapp',[]); myap ...

  6. vue-cli脚手架(框架)

    一.创建vue项目 npm install vue-cli -g #-g全局 (sudo)npm install vue-cli -g #mac笔记本 vue-init webpack myvue # ...

  7. MS-DOS运行java工程

    D:\SourceCode\mailProxy\out\production\examples>java -classpath .;org\roger\stud y\mailClient;D:\ ...

  8. 无废话-API-01

    说明 我的开发环境:VS2013 浏览器:谷歌浏览器(Google Chrome) 1创建项目 1.1添加一个 应用程序"ASP.NET MVC 4 Web 应用程序"  1.2选 ...

  9. 回到未来123Back To The Future

    或许,决定着现在的过去已经无法改变,但决定着未来的现在,却在我们每个人的手里. 路?我们要去的地方不需要路.(Roads? Where we're going we don't need roads) ...

  10. vue Bus总线

    有时候两个组件也需要通信(非父子关系).当然Vue2.0提供了Vuex,但在简单的场景下,可以使用一个空的Vue实例作为中央事件总线. 参考:http://blog.csdn.net/u0130340 ...