今日份代码如下:

/**
*
* @Author: SXD
* @Description:
* @Date: create in 2019/9/20 15:39
*/
public class ProSkuSearchRecordRedisData { private String recordId; private String skuSearchData; private Date exportDate; private String exportUrl; private String errorMsg; private Double score; private Integer status;//异步导出状态 【1 可导出】【0后台未处理】【-1后台处理失败】 public static ProSkuSearchRecordRedisData init(String recordId,String skuSearchData){
ProSkuSearchRecordRedisData redisData = new ProSkuSearchRecordRedisData();
redisData.setRecordId(recordId); //格式yyyyMMddXXXXXXXXXX
redisData.setSkuSearchData(skuSearchData);
redisData.setExportDate(new Date());
redisData.setScore(Double.parseDouble(recordId.substring(0, 8))); //权重为Double.parseDouble(yyyyMMdd))
redisData.setStatus(ProExprotRecordStatusEnum.STATUS_WAIT.getValue()); return redisData;
} /**
* 获取 对象的 属性名+属性值
* @param redisData
* @return
*/
public static Map<String,String> getReflexRecord(ProSkuSearchRecordRedisData redisData){
Map<String,String> map = new HashMap<>(); Class<? extends ProSkuSearchRecordRedisData> aClass = redisData.getClass();
Field[] declaredFields = aClass.getDeclaredFields();
for (Field declaredField : declaredFields) {
declaredField.setAccessible(true);
String fieldName = declaredField.getName();
Object fieldValue = null;
try {
fieldValue = declaredField.get(redisData);
if (fieldValue instanceof Date){
Date date = (Date)fieldValue;
fieldValue = getDateStr(date);
}
} catch (IllegalAccessException e) {
e.printStackTrace();
} map.put(fieldName,String.valueOf(fieldValue));
} return map;
} /**
* 时间转成字符串
* @param date
* @return
*/
private static String getDateStr(Date date){
LocalDateTime localDateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
return localDateTime.format(format);
} /**
* 字符串转时间
* @param dateStr
* @return
*/
private static Date getDateByStr(String dateStr){
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime localDateTime = LocalDateTime.parse(dateStr, formatter);
ZoneId zone = ZoneId.systemDefault();
Instant instant = localDateTime.atZone(zone).toInstant();
return Date.from(instant);
} /**
* 设置 对象的 属性名+属性值
* @param map
* @return
*/
public static ProSkuSearchRecordRedisData setReflexRecord(Map<String,String> map){
ProSkuSearchRecordRedisData obj = new ProSkuSearchRecordRedisData();
Set<String> fieldSet = map.keySet();
Class<? extends ProSkuSearchRecordRedisData> aClass = obj.getClass();
for (String field : fieldSet) {
try {
Field declaredField = aClass.getDeclaredField(field);
declaredField.setAccessible(true);
Type genericType = declaredField.getGenericType();
if (genericType.getTypeName().contains("String")){
declaredField.set(obj,map.get(field));
}
if (genericType.getTypeName().contains("Double")){
declaredField.set(obj,Double.parseDouble(map.get(field)));
}
if (genericType.getTypeName().contains("Integer")){
declaredField.set(obj,Integer.parseInt(map.get(field)));
}
if (genericType.getTypeName().contains("Date")){
Date value = getDateByStr(map.get(field));
declaredField.set(obj,value);
}
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
return obj;
} public String getRecordId() {
return recordId;
} public void setRecordId(String recordId) {
this.recordId = recordId;
} public String getSkuSearchData() {
return skuSearchData;
} public void setSkuSearchData(String skuSearchData) {
this.skuSearchData = skuSearchData;
} public Date getExportDate() {
return exportDate;
} public void setExportDate(Date exportDate) {
this.exportDate = exportDate;
} public String getExportUrl() {
return exportUrl;
} public void setExportUrl(String exportUrl) {
this.exportUrl = exportUrl;
} public String getErrorMsg() {
return errorMsg;
} public void setErrorMsg(String errorMsg) {
this.errorMsg = errorMsg;
} public Double getScore() {
return score;
} public void setScore(Double score) {
this.score = score;
} public Integer getStatus() {
return status;
} public void setStatus(Integer status) {
this.status = status;
}
}

【java】java反射获取属性和属性值,java反射设置属性和属性值的更多相关文章

  1. Java反射学习-3 - 反射获取属性,方法,构造器

    package cn.tx.reflect; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import ...

  2. Android(java)学习笔记109:通过反射获取成员变量和成员方法并且使用

    一.反射获取成员变量并且使用: 1.获取字节码文件对象:         Class c = Class.forName("cn.itcast_01.Person"); 2.使用无 ...

  3. Android(java)学习笔记50:通过反射获取成员变量和成员方法并且使用

    1. 反射获取成员变量并且使用: (1)获取字节码文件对象:         Class c = Class.forName("cn.itcast_01.Person"); (2) ...

  4. 原 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)

    大家都说反射耗性能,但是到底有多耗性能,哪些反射方法更耗性能:这些问题却没有统一的描述. 本文将用数据说明反射各个方法和替代方法的性能差异,并提供一些反射代码的编写建议.为了解决反射的性能问题,你可以 ...

  5. jQuery中使用attribute,prop获取,设置input的checked值【转】

    1.prop方法获取.设置checked属性 当input控件checkbox设置了checked属性时,无论checked=”“或 checked=”checked”,$(obj).prop(“ch ...

  6. jQuery中使用attribute,prop获取,设置input的checked值

    1.prop方法获取.设置checked属性 当input控件checkbox设置了checked属性时,无论checked=”“或 checked=”checked”,$(obj).prop(“ch ...

  7. java反射获取字段的属性值,以及为字段赋值等方法

    1.获取某个类的属性值 /*利用getter方法获取值(首字母大写) CjJssetDTO obj: */ String filedName = "Cj"+(i+1); Class ...

  8. java通过反射获取Java对象属性值

    说明: 作为反射工具类,通过对象和属性的名字获取对象属性的值,如果在当前对象属性没有找到,依次向上收集所有父类的属 性,直到找到属性值,没有找到返回null: 代码: 1.classUtil pack ...

  9. java利用反射获取类的属性及类型

    java利用反射获取类的属性及类型. import java.lang.reflect.Field; import java.math.BigDecimal; import java.util.Map ...

随机推荐

  1. A dependency may only have one source

    在使用Flutter的时候添加依赖报错了 Error on line 21, column 5 of pubspec.yaml: A dependency may only have one sour ...

  2. flask uwsgi和nginx配置信息

    1. 安装 pip3 install uwsgi 2. uwsgi配置信息 创建一个uwsgi.ini文件 [uwsgi] socket=/opt/script/uwsgi.sock #启动程序时所使 ...

  3. ngx-echarts 图表数据动态更新

    使用echarts绘制图表时,初次赋值数据正常展示,重新获取数据之后,图表没有跟着动态刷新.解决的办法是: html文件 <div echarts [options]="chartOp ...

  4. K8s集群中设置harbor仓库认证

    一,获取harbor的登陆用户名和密码(demo_user/demo_pwd) 二,使用kubectl命令生成secret(不同的namespace要分别生成secret,不共用) kubectl c ...

  5. spark写入空值到Oracle

    转自:https://blog.csdn.net/qq_33792843/article/details/83750025 val nullStr = org.apache.spark.sql.fun ...

  6. 莫烦TensorFlow_07 tensorboard可视化

    import tensorflow as tf import numpy as np import matplotlib.pyplot as plt def add_layer(inputs, in_ ...

  7. electron 创建托盘应用

    在Electron中我们创建一个托盘需要如下几个文件: 1. main.js 用来存放应用代码.2. 一张PNG格式的图片用作应用图标.3. 一个package.json文件用来描述应用配置. 下面是 ...

  8. nwjs-打包

    1: 将项目内所有文件压缩成一个压缩包 app.zip 2: 将压缩包重命名为 app.nw 3: 将压缩包放置到 下载解压后的 nw.js 根目录下 4: shift+鼠标右键 选择在此处打开命令窗 ...

  9. Linux性能优化实战学习笔记:第四十二讲

    一.上节回顾 上一节,我们学习了 NAT 的原理,明白了如何在 Linux 中管理 NAT 规则.先来简单复习一下. NAT 技术能够重写 IP 数据包的源 IP 或目的 IP,所以普遍用来解决公网 ...

  10. 黑客最喜欢的15个Nmap扫描命令,熟练掌握你也能成为黑客大神

    1.针对IP或主机的基本Nmap扫描 nmap IP 现在,如果要扫描主机名,只需替换主机的IP,如下所示: nmap 域名 2.扫描本地或远程服务器上的特定端口或扫描整个端口范围 nmap -p 1 ...