需求總是千奇百怪艇挨,對象轉(zhuǎn)成map,看似沒必要,但就是有這個(gè)需求呛每,所以記錄下來
首先是Bean
package tools;import lombok.Data;/** * 車輛實(shí)體類
*/@Datapublicclass Car {
? ? private String id;
? ? privateString model;//型號(hào)privateString color;//顏色privateString volume;//排量privateintyear;//年份}
然后是主要方法和測試類
package tools;import java.lang.reflect.Field;import java.util.HashMap;import java.util.Map;publicclass MapTools {
? ? publicstaticvoidmain(String[] args)throws Exception{
? ? ? ? Car car =new Car();
? ? ? ? car.setId("00000");
? ? ? ? car.setColor("black");
? ? ? ? car.setModel("bmw x5");
? ? ? ? car.setVolume("3.0L");
? ? ? ? car.setYear(2018);
? ? ? ? System.out.println(objectToMap(car));
? ? }
? ? /**? ? * 將Object對象里面的屬性和值轉(zhuǎn)化成Map對象
? ? *
? ? * @param obj
? ? * @return? ? * @throws IllegalAccessException
? ? */publicstaticMap objectToMap(Object obj)throws IllegalAccessException {
? ? ? ? Map map =newHashMap();
? ? ? ? Class clazz = obj.getClass();
? ? ? ? for (Field field : clazz.getDeclaredFields()) {
? ? ? ? ? ? field.setAccessible(true);
? ? ? ? ? ? String fieldName = field.getName();
? ? ? ? ? ? Object value = StringUtils.nvl(field.get(obj));
? ? ? ? ? ? map.put(fieldName, value);
? ? ? ? }
? ? ? ? return map;
? ? }
}
輸出
{volume=3.0L, color=black, year=2018, model=bmw x5, id=00000} ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?歡迎工作一到五年的Java工程師朋友們加入Java群:?741514154
群內(nèi)提供免費(fèi)的Java架構(gòu)學(xué)習(xí)資料(里面有高可用、高并發(fā)坡氯、高性能及分布式莉给、Jvm性能調(diào)優(yōu)毙石、Spring源碼,MyBatis颓遏,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個(gè)知識(shí)點(diǎn)的架構(gòu)資料)合理利用自己每一分每一秒的時(shí)間來學(xué)習(xí)提升自己徐矩,不要再用"沒有時(shí)間“來掩飾自己思想上的懶惰!趁年輕叁幢,使勁拼滤灯,給未來的自己一個(gè)交代!