From 5d36e1f987ef21e44ded2e8a1d06c28094ec1e76 Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期六, 19 四月 2025 12:39:47 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- zhitan-common/src/main/java/com/zhitan/common/utils/PropUtils.java | 126 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 126 insertions(+), 0 deletions(-) diff --git a/zhitan-common/src/main/java/com/zhitan/common/utils/PropUtils.java b/zhitan-common/src/main/java/com/zhitan/common/utils/PropUtils.java new file mode 100644 index 0000000..1be9af3 --- /dev/null +++ b/zhitan-common/src/main/java/com/zhitan/common/utils/PropUtils.java @@ -0,0 +1,126 @@ +package com.zhitan.common.utils; + +import com.alibaba.fastjson.JSONObject; +import com.zhitan.common.constant.CommonConst; + +import java.lang.reflect.Field; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * @Description: 灞炴�у�兼搷浣滃伐鍏风被 + * @author: yxw + * @date: 2022骞�03鏈�07鏃� 9:57 + */ +public class PropUtils { + /** + * 涓哄疄浣撹祴鍊� + * + * @param obj + * @param propName + * @param value + * @return + */ + public static Object setValue(Object obj, String propName, Object value) { + try { + Field field = obj.getClass().getDeclaredField(propName); + field.setAccessible(true); + String nameTypeName = field.getType().getTypeName(); + nameTypeName = StringUtil.ifEmptyOrNullReturnValue(nameTypeName).toLowerCase(); + if (nameTypeName.contains("float")) { + float num = (float) DoubleUtil.toDouble(value); + field.set(obj, num); + } else if (nameTypeName.contains("double")) { + field.set(obj, DoubleUtil.toDouble(value)); + } else if (nameTypeName.contains("bigdecimal")) { + BigDecimal valueOf = BigDecimal.valueOf(Double.parseDouble(String.valueOf(value))) + .setScale(CommonConst.DIGIT_2, BigDecimal.ROUND_HALF_UP); + + field.set(obj, valueOf); + } else { + field.set(obj, value); + } + } catch (Exception e) { + return null; + } + return obj; + } + + /** + * 鑾峰彇瀵硅薄鐨勬寚瀹氬瓧娈电殑鍊� + * + * @param obj + * @param propName + * @return + */ + public static String getPropValue(Object obj, String propName) { + String propValue = ""; + try { + if (null != obj) { + JSONObject jsonObject = StringUtil.toJsonObject(obj); + if (!StringUtil.isEmptyOrNull(propName)) { + propValue = jsonObject.getString(propName); + } + } + } catch (Exception e) { + } + return propValue; + } + + /** + * 鑾峰彇瀵硅薄鐨勬寚瀹氬瓧娈电殑绫诲瀷 + * 杩斿洖灞炴�х殑绫诲瀷瀛楃涓诧紙灏忓啓锛屼緥濡�:string/integer/double/date锛� + * + * @param obj 瀹炰綋 + * @param propName 灞炴�у悕 + * @return 锛堝皬鍐欙紝渚嬪:string/integer/double/date锛� + */ + public static String getPropType(Object obj, String propName) { + String propType = ""; + try { + if (null != obj && !StringUtil.isEmptyOrNull(propName)) { + Field[] fields = obj.getClass().getDeclaredFields(); + for (Field field : fields) { + String name = field.getName().toLowerCase(); + if (name.equals(propName.toLowerCase())) { + propType = field.getType().getSimpleName().toLowerCase(); + } + } + } + + } catch (Exception e) { + + } + return propType; + } + + /** + * 琛岃浆鍒� + * @param clazz 缁撴灉绫伙紝濡� UserInfo.class + * @param list 鏁版嵁闆� + * @return + * @param <T> + */ + public static <T> List rowToColumn(Class<T> clazz, List<T> list){ + List<List> result; + Field[] fields = clazz.getDeclaredFields(); + result = new ArrayList<>(fields.length); + for (int i = 0; i < fields.length; i++) { + result.add(new ArrayList()); + } + for (T t : list) { + for (int i = 0; i < fields.length; i++) { + List l = result.get(i); + Field field = fields[i]; + field.setAccessible(true); + try { + l.add(field.get(t)); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + } + return result; + } +} -- Gitblit v1.9.3