【java】java反射获取属性和属性值,java反射设置属性和属性值
今日份代码如下:
- /**
- *
- * @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反射设置属性和属性值的更多相关文章
- Java反射学习-3 - 反射获取属性,方法,构造器
package cn.tx.reflect; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import ...
- Android(java)学习笔记109:通过反射获取成员变量和成员方法并且使用
一.反射获取成员变量并且使用: 1.获取字节码文件对象: Class c = Class.forName("cn.itcast_01.Person"); 2.使用无 ...
- Android(java)学习笔记50:通过反射获取成员变量和成员方法并且使用
1. 反射获取成员变量并且使用: (1)获取字节码文件对象: Class c = Class.forName("cn.itcast_01.Person"); (2) ...
- 原 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
大家都说反射耗性能,但是到底有多耗性能,哪些反射方法更耗性能:这些问题却没有统一的描述. 本文将用数据说明反射各个方法和替代方法的性能差异,并提供一些反射代码的编写建议.为了解决反射的性能问题,你可以 ...
- jQuery中使用attribute,prop获取,设置input的checked值【转】
1.prop方法获取.设置checked属性 当input控件checkbox设置了checked属性时,无论checked=”“或 checked=”checked”,$(obj).prop(“ch ...
- jQuery中使用attribute,prop获取,设置input的checked值
1.prop方法获取.设置checked属性 当input控件checkbox设置了checked属性时,无论checked=”“或 checked=”checked”,$(obj).prop(“ch ...
- java反射获取字段的属性值,以及为字段赋值等方法
1.获取某个类的属性值 /*利用getter方法获取值(首字母大写) CjJssetDTO obj: */ String filedName = "Cj"+(i+1); Class ...
- java通过反射获取Java对象属性值
说明: 作为反射工具类,通过对象和属性的名字获取对象属性的值,如果在当前对象属性没有找到,依次向上收集所有父类的属 性,直到找到属性值,没有找到返回null: 代码: 1.classUtil pack ...
- java利用反射获取类的属性及类型
java利用反射获取类的属性及类型. import java.lang.reflect.Field; import java.math.BigDecimal; import java.util.Map ...
随机推荐
- 个人项目wc(Java)
个人项目(Java) 一丶Github地址:https://github.com/SAH2019/S ...
- day 34 作业
作业 mysql> create table tea( -> id int unsigned auto_increment primary key, -> name varchar( ...
- [Go] golang的用途和windows搭建环境
Golang核心编程: 区块链研发工程师(分布式账本技术,互联网数据库技术,特点是去中心化) Go服务器端/游戏软件工程师(现在主流是C C++,处理日志,数据打包,文件处理,美团后台流量支撑,处理大 ...
- Java后端面经总结:拿下蚂蚁金服美团头条 offer 秘诀
笔者在面过 猿辅导,去哪儿,旷视, 陌陌,头条, 阿里, 快手, 美团, 腾讯之后,除了收获一大堆面试问题,还思考到如何成为面试官眼中的”爱技术,爱思考,靠谱,有潜力候选人的”一些”套路”. 面试问题 ...
- OpenGL入门(一):使用GLFW创建简单的窗口
如果使用QT,那么创建一个OpenGL渲染窗口其实很容易,不过出于初学的角度,使用GLFW库来创建新窗口. 1. 下载并配置GLFW GLFW是一个专门针对OpenGL的C语言库,它提供了一些渲染物体 ...
- JS高阶---回调函数
1.什么函数是回调函数? 此时两者的执行并没有先后顺序 两个都是回调函数 满足三个特点就是回调 .定义了函数 .没有主动调用 .最后执行了 2.常见的回调函数有哪些? .DOM事件回调函数 .定时器回 ...
- MySQL中建立Oracle中SCOTT数据示例
1.创建 scott 数据库 CREATE DATABASE scott; 2.创建 scott 数据库中的 dept 表 CREATE TABLE dept( deptno INT UNSIGNED ...
- c# 第11节 运算符大全
本节内容: 1:数学运算符 2:赋值运算符 3:关系运算符 4:布尔运算符 5:位运算符 6:其他运算符 1:数学运算符 2:赋值运算符 3:关系运算符 4:布尔运算符 5:位运算符 & 运算 ...
- centos7 下安装rpm的mysql 5.7
在centos7下安装mysql5.7 一:下载mysql 去官网上去下载:这里我下载的二进制格式的 https://dev.mysql.com/downloads/mysql/ 去下载对应平台的my ...
- LG5338/BZOJ5509/LOJ3105 「TJOI2019」甲苯先生的滚榜 Treap
问题描述 LG5338 LOJ3105 BZOJ5509 题解 建立一棵\(\mathrm{Treap}\),把原来的\(val\)换成两个值\(ac,tim\) 原来的比较\(val_a<va ...