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;
}
}
java反射对实体类取值和赋值的更多相关文章
- java反射对实体类取值和赋值,可以写成通过实体类获取其他元素的数据,很方便哦~~~
项目中需要过滤前面表单页面中传过来的实体类的中的String类型变量的前后空格过滤,由于前几天看过一个其他技术博客的的java反射讲解,非常受益.于是,哈哈哈 public static <T& ...
- java反射遍历实体类属性和类型,并赋值和获取值
/* * GetModelNameAndType.java * Version 1.0.0 * Created on 2017年12月15日 * Copyright ReYo.Cn */ packag ...
- c# 反射得到实体类的字段名称和值,DataTable转List<T>
/// <summary> /// 反射得到实体类的字段名称和值 /// var dict = GetProperties(model); /// </summary> /// ...
- java中遍历实体类,获取属性名和属性值
方式一(实体类): //java中遍历实体类,获取属性名和属性值 public static void testReflect(Object model) throws Exception{ for ...
- C#、Python中分别是怎么实现通过字符串获取实体类的值以及给实体类赋值
一.引入 最近遇到一个项目里面的功能,在给实体类赋值的时候,由于赋值字段是动态生成的,所以如果用常用的方法(直接实体类的名称.字段名=要赋的值),将会生成很多无用的代码,所以找到了一个通过反射的赋值与 ...
- Java中遍历实体类(处理MongoDB)
在实际过程中,经常要将实体类进行封装,尤其是处理数据库的过程中:因此,对于遍历实体类能够与数据库中的一行数据对应起来. 我是使用的环境是Spring boot,访问的数据库时MongoDB 实体类遍历 ...
- Java中的实体类--Serializable接口、transient 关键字
在java中,实体类是一个非常重要的概念,我们可以在实体类中封装对象.设置其属性和方法等.关于实体类,也经常涉及到适配器模式.装饰者模式等设计模式.那么在实际代码开发中,关于实体类的注意事项有哪些呢? ...
- JAVA反射之Class类的练习
package zhang; /** * JAVA反射之CLass类的练习 * * 在面向对象的语言里,万事万物皆对象,那么类是谁的对象呢? * 类的类型是CLass * * */ class Tes ...
- Java进阶(十一)部分数据类型取值范围
java整型byte,short,int,long取值范围大小 在项目开发中,需要用到随机数的生成方法,代码如下: public static String randomizeNumber(int n ...
随机推荐
- Codeforces 1093E Intersection of Permutations [CDQ分治]
洛谷 Codeforces 思路 一开始想到莫队+bitset,发现要T. 再想到分块+bitset,脑子一抽竟然直接开始写了,当然也T了. 最后发现这就是个裸的CDQ分治-- 发现\(a\)不变,可 ...
- oracle存储大文本clob、blob
oracle存储大文本clob.blob 1 package cn.itcast.web.oracle.util; 2 3 import java.sql.Connection; 4 import j ...
- 【sqli-labs】Less17
Less17: POST注入,UPDATE语句,有错误回显 新知识点: 1. update注入方法 参考:http://www.mamicode.com/info-detail-1665678.htm ...
- 表达式语言 Expression Language
JSP 2.0最重要的特性之一就是表达式语言 (EL),JSP用户可以用它来访问应用程序数据.由于 受到ECMAScript和XPath表达式语言的启发,EL也设计 成可以轻松地编写免脚本的JSP页面 ...
- Workbench热水泵系统
1.创建一个新的项目,首先新建一个station,打开platform(链接配置,端口设置,账户设置) 新建文件夹之后模板的选取从palette中选择. 第一步新建station,键入station名 ...
- 直径上的乱搞 bzoj1999求树直径上的结点+单调队列,bzoj1912负权树求直径+求直径边
直径上的乱搞一般要求出这条直径上的点集或者边集 bzoj1999:对直径上的点集进行操作 /* 给出一颗树,在树的直径上截取长度不超过s的路径 定义点u到s的距离为u到s的最短路径长度 定义s的偏心距 ...
- Python元组与列表的区别
列表类似于我们用铅笔在纸上写字,写错了还可以擦掉:而元组则类似于用钢笔写字,写错了就擦不掉了,除非换张纸重写. 列表和元组的区别主要体现在一下几个方面: 列表属于可变序列,他的元素可以随时修改或删除: ...
- AI-视图组件-五个接口的最终简化版
五个接口最终版 #url.py # 序列化最贱版本 url(r'^customer/$', views.CustomerView.as_view({"get":"list ...
- C++ Primer 笔记——理解std::move
标准库move函数是使用右值引用的模板的一个很好的例子.标准库是这样定义std::move的: template <typename T> typename remove_referenc ...
- Ubuntu 进入、退出命令行的快捷键
进入: Ctrl+Alt+F1 退出: Ctrl+Alt+F7(或者 Alt+F7) 进入命令行窗口:Ctrl+Alt+T