package com.ieslab.wechatapp.util;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* @description: 反射通用类
* @author: yiwenli
* @create: 2021-03-25 15:19
**/
public class BeanRefUtil {
private static final Logger LOGGER = LoggerFactory.getLogger(BeanRefUtil.class);
public static void main(String[] args) {
List<Map<String, String>> list = new ArrayList<>();
list.add(new HashMap<String, String>() {
{
put("TIME", "2020-12-22 00:11:11");
put("VALUE", "12345.45");
put("TESTBOOLEAN1", "true");
put("TESTBOOLEAN2", "false");
}});
list.add(new HashMap<String, String>() {
{
put("TIME", "2020-12-22 00:12:11");
put("VALUE", "12222.45");
put("TESTBOOLEAN1", "false");
put("TESTBOOLEAN2", "true");
}});
List<TestObject> result = new ArrayList<>();
setFieldValue(TestObject.class, list, result);
Map<String, String> tempMap = getFieldValueMap(result.get(0));
System.out.println(11);
}
/**
* 比较另一个对象和当前对象的值
*
* @param obj 对象1
* @param obj2 对象2
*/
public static Boolean equals(Object obj, Object obj2) {
if(obj == null && obj2 == null) {
return true;
} else if(obj == null || obj2 == null) {
return false;
}
Class<?> clazz = obj.getClass();
Class<?> clazz2 = obj2.getClass();
// 俩对象类名不一样
if(!clazz.getName().equals(clazz2.getName())) {
return false;
}
// 获取所有方法
Method[] methods = clazz.getDeclaredMethods();
// 获取所有属性
Field[] fields = clazz.getDeclaredFields();
for(Field field: fields) {
try {
String fieldName = field.getName();
String fieldType = field.
java反射通用类 - 调用实体类set及get方法
最新推荐文章于 2023-03-14 23:26:50 发布