Java基礎-將Bean屬性值放入Map中
利用發射將Java物件的屬性值以屬性名稱為鍵,儲存到Map中的簡單實現。包括自身屬性及從父類繼承得到的屬性。Java型別的getField[s]方法只能獲取public 型別的屬性,getDeclaredFields則能獲取所有宣告的屬性,同時,如果類的可見性非公有,則Field的get(Object)方法將取不到具體的屬性值。
package com.wood.util; import java.lang.reflect.Field; import java.util.HashMap; import java.util.Map; /** * * @ClassName: BeanToMapUtils * @Description: TODO * @author wood * @date 2014-10-31 下午09:52:41 * */ public class BeanToMapUtils { /** * getFileds獲取所有public 屬性<br/> * getDeclaredFields 獲取所有宣告的屬性<br/> * @param bean * @return 將某個類及其繼承屬性全部新增到Map中 */ public static Map<String,Object> beanToMap(Object bean){ Map<String,Object> result = new HashMap<String,Object>(); if(bean==null){ return result; } Field[] fields = bean.getClass().getDeclaredFields(); if(fields==null||fields.length==0){ return result; } for(Field field:fields){ //重置屬性可見(而且一般屬性都是私有的),否則操作無效 boolean accessible = field.isAccessible(); if(!accessible){ field.setAccessible(true); } //獲取屬性名稱及值存入Map String key = field.getName(); try { result.put(key, field.get(bean)); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } //還原屬性標識 field.setAccessible(accessible); } //獲取父類屬性 fields = bean.getClass().getSuperclass().getDeclaredFields(); if(fields==null||fields.length==0){ return result; } for(Field field:fields){ //重置屬性可見(而且一般屬性都是私有的),否則操作無效 boolean accessible = field.isAccessible(); if(!accessible){ field.setAccessible(true); } //獲取屬性名稱及值存入Map String key = field.getName(); try { result.put(key, field.get(bean)); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } //還原屬性標識 field.setAccessible(accessible); } return result; } public static void main(String[] args) { Dog info = new Dog(); info.setCountry("cc"); info.setName("Dog"); info.setCategory("gram"); info.setOwner("wang"); System.out.println(beanToMap(info)); } }
相關推薦
Java基礎-將Bean屬性值放入Map中
利用發射將Java物件的屬性值以屬性名稱為鍵,儲存到Map中的簡單實現。包括自身屬性及從父類繼承得到的屬性。Java型別的getField[s]方法只能獲取public 型別的屬性,getDeclaredFields則能獲取所有宣告的屬性,同時,如果類的可見性
遍歷list集合按照其中一個屬性分類放入Map中
for (AppServerInfo appServerInfo : serverInfoList) { String envIp = appServerInfo.getEnvIp(); if (serverMap.keySet().contains(envIp)) {
hibernate使用setResultTransformer()將SQL查詢結果放入集合中
-h cal 們的 gpo ict dds eas find ans 在平時開發中Hibernate提供的hql基本能夠滿足我們的日常需求。但是在有些特殊的情況下,還是需要使用原生的sql,並且希望sql查詢出來的結果能夠綁定到pojo上。hibernate API中的cr
將多行資料放入陣列中
DataTable dt = new DataTable(); OleDbDataReader reader=null; stri
利用 BeanUtils 將 Map 與 Bean 進行相互轉換(把 map 值放入 Bean 的屬性中)
map -》 Bean BeanUtils.populate(Object bean, Map<String, ? extends Object> properties); B
java通過檔案路徑讀取該路徑下的所有檔案並將其放入list中
需求:所有xml檔案都放在某個目錄下,寫個方法讀取所有xml檔案,然後傳給下面的某個方法呼叫 實現:先把所有的xml檔案通過遞迴讀取出來 ,存放到List中,然後以檔名為Key,檔案(檔案路徑+檔名)為Value,存放到Map中,供後面程式呼叫 程式碼如下: import java.io.File
建立一個帶頭結點的單向鏈表,鏈表中的各結點按結點數據中的數據遞增有序鏈接,函數fun的功能是:把形參x的值放入一個新結點並插入鏈表中,使插入後各結點數據域中的數據仍保持遞增有序
print lis void clu ret div clas head number #include <stdio.h> #include <stdlib.h> #define N 8 typedef struct l
Java:將Excel數據導入到數據庫
port .get top logs bsp 連接 sta desktop 一個 所用Jar包 1. sqljdbc4.jar 連接數據庫的Jar包(根據數據庫的不同進行選擇,我用的SqlServer2008) 2.Jxl.jar 訪問Excel的Jar包 package
Mybatis將結果放入map時別名不是駝峰形式
map 形式 bat dst 查詢 key sta code ati 查詢時如果給字段起別名,並且將查詢結果映射到一個Map,那麽Map的key將是忽略大小寫的。映射到一個實體類是沒這個問題的。 state as addState 從Map中取值時應該:map.get("a
將time的結果放入到文件中
寫入 time 內容 方式 記錄 準備 標準輸出 .sh 通過 緣起 今天看到一個問題,如何把time的執行結果放到文件中,心想直接time sh sleep.sh >output.log不就可以了麽。其實大部分返回標準輸出的命令都可以這麽幹,列如:ls >ou
AnaularJs的一鍵全選和全不選,且將選中的資料放入到陣列中
1.Js程式碼 //全選和全不全 $scope.box1 = function() { var aa = $scope.checkAll; if(aa == false) { for(var i = 0; i < $scop
從控制檯輸入若干個單詞(輸入回車結束)放入集合中,將這些單詞排序後(忽略大小寫)打印出來。 [選做題]
import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Scanner; public cl
java物件複製和屬性值複製工具類
兩個不同型別的物件中有欄位名稱不區分大小寫的情況下一樣,欄位含義一樣,需要組裝到另一個物件中去,然後就寫了一個這種工具類 我的型別比較特殊,老系統和新系統的物件命名大小寫命名不一致,並且欄位相同型別也有不一致的情況,所以自己寫了一個, 不是很完美基本能用。
java通過註解解決屬性值更換 例如1000轉換為10 除以100的操作
package com.mryt.cps.oms.center.util.serializer; import com.fasterxml.jackson.core.JsonGenerator; im
隨機10個100到200之間的整數,將這些數放入陣列中,列印陣列,再使用 3種排序。
package com.paixu; public class Test_maopao { /** * @param args */ public static void main(String[] args) { // TODO Auto-generat
java基礎語法之賦值運算子
賦值運算子以符號“=”表示,它是一個二元運算子(對兩個數運算元作處理),其功能是將右方運算元所含有的值賦給左方的運算元。左方地運算元必須是一個變數,而右邊的運算元則可以是任何表示式 其擴充套件的賦值運算子:+=,-=,*=,/=,%=
tomcat啟動時將快取放入Redis中
package com.tmhc.sms.cache; import java.util.List; import java.util.Map; import java.util.Set; imp
攜程 Apollo 配置中心 | 學習筆記(十三)| 如何將日誌配置檔案放入到Apollo配置中心並支援熱更新?
本章將介紹如何將日誌配置檔案放入到Apollo配置中心並支援熱更新專欄目錄:歡迎關注個人公眾號: Coder程式設計歡迎關注個人網站:www.52melrin.com需求 日誌模組是每個專案中必須的,用來記錄程式執行中的相關資訊。一般在開發環境下使用DEBUG級別的
將類中所有屬性和值新增到Map中
public class FunSwitch{ public int clientFile=0; public String fileMonitor="wangzhiming"
將球放入盒中的方法數總結(球盒模型問題)
本篇部落格主要講解球盒模型問題中所有情況,因為該問題是組合數學中的最常見的一類問題,所以有必要在這裡詳細地說一說。 該類問題涉及到三個因素,分別是球、盒子、盒子是否可以為空。所以大概可以將該問題分為以下八種情況: 1.將r個無區別的球放入n個有標誌的