亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Java如何獲取對象屬性及對應值

瀏覽:4日期:2022-08-21 11:27:12

利用反射獲取對象的所有屬性及對應的值

1、獲取屬性名數組

private static String[] getFiledName(Object o) { Field[] fields = o.getClass().getDeclaredFields(); String[] fieldNames = new String[fields.length]; for (int i = 0; i < fields.length; i++) { fieldNames[i] = fields[i].getName(); } return fieldNames; }

2、根據屬性名獲取屬性值

private static Object getFieldValueByName(String fieldName, Object o) { try { String firstLetter = fieldName.substring(0, 1).toUpperCase(); String getter = 'get' + firstLetter + fieldName.substring(1); Method method = o.getClass().getMethod(getter, new Class[] {}); Object value = method.invoke(o, new Object[] {}); return value; } catch (Exception e) { logger.error('獲取屬性值失敗!' + e, e); } return null; }

3、獲取屬性的數據類型

private static Object getFiledType(String fieldName, Object o) { Field[] fields = o.getClass().getDeclaredFields(); for (Field field : fields) { if (Objects.equals(fieldName, field.getName())) {return field.getType(); } } return null; }

4、完整代碼及其引入的包

package com.hao.search;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;import java.util.Objects;import org.apache.commons.collections.CollectionUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import com.google.common.base.Joiner;public class ObjectPaseUtils { private static Logger logger = LoggerFactory.getLogger(ObjectPaseUtils.class); /** * @desc 將對象轉換成指定String * @param <T> * @param t * @return */ public static <T> String objectToStr(T t) { List<String> list = new ArrayList<String>(); String[] fieldNames = getFiledName(t); for (int i = 0; i < fieldNames.length; i++) { String name = fieldNames[i]; Object value = getFieldValueByName(name, t); if (null != value) {if (getFiledType(name, t).equals(Date.class)) { value = new SimpleDateFormat('yyyy-MM-dd HH:mm:ss').format((Date)value);}list.add(name + ' : ' + value); } } if (CollectionUtils.isNotEmpty(list)) { return Joiner.on('r').skipNulls().join(list); } return null; } /** * @desc 獲取屬性名數組 * @param o * @return */ private static String[] getFiledName(Object o) { Field[] fields = o.getClass().getDeclaredFields(); String[] fieldNames = new String[fields.length]; for (int i = 0; i < fields.length; i++) { fieldNames[i] = fields[i].getName(); } return fieldNames; } /** * @desc 根據屬性名獲取屬性值 * @param fieldName * @param o * @return */ private static Object getFieldValueByName(String fieldName, Object o) { try { String firstLetter = fieldName.substring(0, 1).toUpperCase(); String getter = 'get' + firstLetter + fieldName.substring(1); Method method = o.getClass().getMethod(getter, new Class[] {}); Object value = method.invoke(o, new Object[] {}); return value; } catch (Exception e) { logger.error('獲取屬性值失敗!' + e, e); } return null; } /** * @desc 獲取屬性的數據類型 * @param fieldName * @param o * @return */ private static Object getFiledType(String fieldName, Object o) { Field[] fields = o.getClass().getDeclaredFields(); for (Field field : fields) { if (Objects.equals(fieldName, field.getName())) {return field.getType(); } } return null; }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 久久se精品一区二区影院 | 伊人久久国产 | 亚洲高清国产品国语在线观看 | 麻豆精品传媒成人精品 | 国产成人亚洲精品77 | 制服丝袜在线播放 | 久久99国产精品一区二区 | 一级午夜a毛片免费视频 | 欧美激情艳三级 | 一区二区三区高清在线观看 | 亚洲视频网站在线观看 | 精品国产女同疯狂摩擦2 | 亚洲在线一区二区三区 | 成人影院www在线观看 | 国产一级做a爰片在线看 | 新香蕉视频在线 | 日韩激情无码免费毛片 | 国内免费自拍视频 | 国产成人a一在线观看 | 在线免费观看黄色小视频 | 亚洲欧美日韩高清中文在线 | 午夜激情免费视频 | 久久久精品久久久久特色影视 | 男人狂躁女人下面视频免费观看 | 特级毛片免费 | 热99re国产久热在线 | 男女激情网 | 亚洲精品国产第一区二区多人 | 日本人一级毛片视频 | 亚洲一区二区三区一品精 | 免费观看性行为的视频网站 | 欧美成 人激情视频 | 色播亚洲精品网站 亚洲第一 | 超级碰碰碰在线观看 | 国产一级特黄高清免费大片 | 亚洲免费色图 | 欧美色片在线观看 | 久久精品国产99国产精偷 | 日韩精品一区二区三区免费观看 | 91短视频版高清在线观看免费 | 国产精品久久久久这里只有精品 |