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 ...
随机推荐
- Centos 7.3下 Linux For SQL Server安装及配置介绍
Centos 7.3下 Linux For SQL Server安装及配置介绍 高文龙关注13人评论2828人阅读2017-03-05 21:46:21 Centos 7.3下Linux For SQ ...
- Linux下Oracle 12c的卸载
注:本文来源于:<Linux下Oracle 12c的卸载> 与Windows下Oracle的安装容易卸载麻烦相反,Linux下Oracle的安装麻烦下载简单. 1.关闭Oracle数据库 ...
- kindEditor 富文本编辑器 使用介绍
第一版:存放位置: ---->把该创建的文件包放到javaWeb 过程的 WEB_INF 下:如图所示. 第二步:< kindEditor 插件的引用> :JS引用 <scr ...
- Confluence 6 性能优化
这个页面帮助你对应用性能进行提升需要进行的一些操作.这个页面不是为你对 Confluence 出现问题后进行问题修复的指南.如果你的 Confluence 崩溃的话,请查看Troubleshootin ...
- Confluence 6 配置 workbox 通知
你可以在你的 Confluence workbox 中查看和管理应用内的通知和任务.更多的,你可以在 Confluence workbox 中从接收到从 JIRA 和其他 Confluence 服务器 ...
- MYSQL安装报错 -- 出现Failed to find valid data directory.
运行环境:windows10数据库版本:mysql.8.0.12安装方式:rpm包直接安装 问题描述:mysql初始化的时候找不到对应的数据库存储目录 报错代码: 2018-10-13T03:29:2 ...
- java易错题----静态方法的调用
class A{ public static String s="A.s"; } class B extends A{ public static String s="B ...
- uva11916 bsgs算法逆元模板,求逆元,组合计数
其实思维难度不是很大,但是各种处理很麻烦,公式推导到最后就是一个bsgs算法解方程 /* 要给M行N列的网格染色,其中有B个不用染色,其他每个格子涂一种颜色,同一列上下两个格子不能染相同的颜色 涂色方 ...
- JS去除空格和换行的正则表达式(推荐)
//去除空格 String.prototype.Trim = function() { return this.replace(/\s+/g, ""); } //去除换 ...
- Wowza 相关
下载: 1.https://www.wowza.com/pricing/installer 安装: https://www.wowza.com/docs/how-to-install-and-conf ...