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 ...
随机推荐
- mvn tomcat7:help的14个命令
D:\2018\code\XXX>mvn tomcat7:help [INFO] Scanning for projects... [INFO] [INFO] ----------------- ...
- Confluence 6 配置服务器基础地址
服务器基础地址(Server Base URL)是用户访问 Confluence 的 URL 地址.这个基础的 URL 地址必须与你在浏览器中访问 Confluence 中的地址. Confluenc ...
- Confluence 6 禁用管理员联系表单
如果你希望禁用这个功能,不允许用户通过发送电子邮件的方式联系站点管理员.你可以禁用这个页面中有关输入用户信息发送电子邮件的部分.你只能禁用用户电子邮件输入表单,如果你按照上面描述的步骤在 'Custo ...
- Java的家庭记账本程序(B)
日期:2019.2.3 博客期:029 星期日 看看今天想先完成jsp的连接操作,所以首先意识到自己的程序中,管理员可以对成员进行冻结.解封操作,所以先回去补了一下数据库的内容!成员的内容里多了一项i ...
- 【python】多进程共享变量
有一个字典变量,需要在多个进程间共享 使用Manager, 下面是一个小例子. 注意使用json前需要将类型转换. #!/usr/bin/python # coding=utf-8 import js ...
- Anaconda创建caffe和tensorflow共存环境
一.前言 安装环境: Anaconda Ubuntu 二.安装步骤 我们分几步进行,anconda的安装和使用方法就不讲解了.我们直接安装caffe和tensorflow. 1.创建虚拟环境 我们先创 ...
- laravel 5.6
compact() 建立一个数组,包括变量名和它们的值 打印结果: starts_with() 函数判断给定的字符串的开头是否是指定值
- Python游戏编程(Pygame)
安装Pygame pip install pygame C:\Users> pip install pygame Collecting pygame Downloading https://fi ...
- idea 设置选中代码得背景颜色
- 抓包工具Charles Proxy v4.1.1破解版下载
移动开发抓包工具Charles Proxy破解版下载 下载Charles Proxy版本,http://charles.iiilab.com/或 https://www.charlesproxy.co ...