【分享】java反射获取、设置、打印对象属性,对象转map基础工具
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                【分享】java反射获取、设置、打印对象属性,对象转map基础工具
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                
                            
                            
                            package com.lion.util;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
/**** @author liyongyao**/
public class GetClassInfo {/*** 獲得屬性名** @param object* @return*/public static ArrayList<String> ComponentsName(Object object) {Field[] fields = object.getClass().getDeclaredFields();ArrayList<String> filedName = new ArrayList<String>();for (int i = 0; i < fields.length; i++) {try {String varName = fields[i].getName();boolean accessFlag = fields[i].isAccessible();fields[i].setAccessible(true);filedName.add(varName);fields[i].setAccessible(accessFlag);} catch (SecurityException e) {e.printStackTrace();} catch (IllegalArgumentException e) {e.printStackTrace();}}return filedName;}/*** 獲取鍵值對** @param object* @return*/public static Map<String, Object> ComponentsNameAndValue(Object object) {Field[] fields = object.getClass().getDeclaredFields();Map<String, Object> nameAndValue = new HashMap<String, Object>();ArrayList<String> filedName = new ArrayList<String>();ArrayList<Object> filedValue = new ArrayList<Object>();for (int i = 0; i < fields.length; i++) {try {boolean accessFlag = fields[i].isAccessible();fields[i].setAccessible(true);String varName = fields[i].getName();Object varValue = fields[i].get(object);filedName.add(varName);filedValue.add(varValue);fields[i].setAccessible(accessFlag);} catch (Exception e) {e.printStackTrace();}}nameAndValue.put("value", filedValue);nameAndValue.put("key", filedName);return nameAndValue;}/*** 獲取鍵值對打印到控制臺** @param object* @return*/public static void printClassInfo(Object object) {Field[] fields = object.getClass().getDeclaredFields();for (int i = 0; i < fields.length; i++) {try {boolean accessFlag = fields[i].isAccessible();fields[i].setAccessible(true);String varName = fields[i].getName();Object varValue = fields[i].get(object);System.out.println(varName + "=" + varValue);fields[i].setAccessible(accessFlag);} catch (Exception e) {e.printStackTrace();}}}/*** 根據屬性名稱查找對象中的相應值** @param name*            屬性名* @param object*            要查找的對象* @return Object 返回屬性對應的值*/public static Object getValueByName(String name, Object object) {try {Field f = object.getClass().getDeclaredField(name);boolean accessFlag = f.isAccessible();f.setAccessible(true);Object o = f.get(object);f.setAccessible(accessFlag);return o;} catch (Exception e) {e.printStackTrace();}return null;}public static Object setValueByName(String name, Object value, Object object) {try {Field f = object.getClass().getDeclaredField(name);boolean accessFlag = f.isAccessible();// 獲得原始權限f.setAccessible(true);// 權限設置為可訪問f.set(object, value);f.setAccessible(accessFlag);// 還原權限return object;} catch (Exception e) {e.printStackTrace();}return null;}
}
                        
                        
                        轉載于:https://blog.51cto.com/liyongyao/1206765
總結
以上是生活随笔為你收集整理的【分享】java反射获取、设置、打印对象属性,对象转map基础工具的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: linux 双网卡绑定(bonding)
- 下一篇: 藏戏教学设计一等奖
