av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

Java如何獲取對象屬性及對應(yīng)值

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

利用反射獲取對象的所有屬性及對應(yīng)的值

1、獲取屬性名數(shù)組

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、根據(jù)屬性名獲取屬性值

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、獲取屬性的數(shù)據(jù)類型

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 將對象轉(zhuǎn)換成指定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 獲取屬性名數(shù)組 * @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 根據(jù)屬性名獲取屬性值 * @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 獲取屬性的數(shù)據(jù)類型 * @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; }}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: av一区二区三区 | 狠狠操在线 | 亚洲精品视频一区 | 91一区二区在线观看 | 在线观看视频一区 | 超碰伊人| 日韩成人在线观看 | 999久久久免费精品国产 | 亚洲丝袜天堂 | 亚洲精品乱码久久久久久按摩观 | 91视频一88av | 欧美日韩黄色一级片 | 日韩欧美三区 | 伊人春色在线观看 | 精品一区二区免费视频 | 精国产品一区二区三区四季综 | 免费在线观看av的网站 | 91九色在线观看 | 日日夜夜狠狠操 | 亚洲国产免费 | 欧美日韩一区二区电影 | 精品福利一区二区三区 | 久久久国产视频 | 手机av在线| 午夜无码国产理论在线 | 蜜桃精品视频在线 | a级在线观看 | 一区二区三区四区国产 | 不卡一区二区在线观看 | 91天堂| 精品久久久久久久久久久 | 亚洲人成人网 | 91麻豆精品一区二区三区 | 欧美阿v| 一级毛片观看 | 久久国产欧美日韩精品 | 夜夜骚 | 一本一道久久a久久精品综合蜜臀 | 久热久热| 中文字幕一区二区三区四区五区 | 91精品国产高清一区二区三区 |