將一個類的屬性存入MAP中(key為屬性名,value為屬性值)
阿新 • • 發佈:2019-01-23
有時候需要將javaBean與Map互轉,寫個方法(只寫了javaBean轉為Map,Map轉為javaBean比較簡單),供大家參考
/** * 獲取obj中的所有方法 * @param obj * @return */ public List<Method> getAllMethods(Object obj){ List<Method> methods = new ArrayList<Method>(); Class<?> clazz = obj.getClass(); while(!clazz.getName().equals("java.lang.Object")){ methods.addAll(Arrays.asList(clazz.getDeclaredMethods())); clazz = clazz.getSuperclass(); } return methods; } /** * 將一個類用屬性名為Key,值為Value的方式存入map * @param obj * @return */ public Map<String,Object> convert2Map(Object obj){ Map<String,Object> map = new HashMap<String,Object>(); List<Method> methods = getAllMethods(obj); for(Method m:methods){ String methodName = m.getName(); if(methodName.startsWith("get")){ //獲取屬性名 String propertyName = methodName.substring(3); try { map.put(propertyName,m.invoke(obj)); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } } return map; }