Heim >Java >javaLernprogramm >So konvertieren Sie Objekte in Java mit BeanMap in Karten

So konvertieren Sie Objekte in Java mit BeanMap in Karten

PHPz
PHPznach vorne
2023-05-08 15:49:082045Durchsuche

Es gibt viele Möglichkeiten, Java-Beans und Maps zu konvertieren, wie zum Beispiel: 1. Konvertieren Sie Beans zuerst über ObjectMapper und konvertieren Sie dann JSON in Map. Nach dem Testen ist die Konvertierung jedoch zyklisch 10.000 Bohnen, das dauert 12 Sekunden! ! ! Nicht empfohlen

2. Erhalten Sie die Attribute und Werte der Bean-Klasse durch Java-Reflexion und konvertieren Sie sie dann in die der Karte entsprechenden Schlüssel-Wert-Paare. Diese Methode ist die zweitbeste, aber etwas aufwändiger 3. Durch net.sf.cglib Die Methode in der .beans.BeanMap-Klasse ist äußerst effizient. Der Unterschied zur zweiten Methode besteht darin, dass sie beim ersten Erstellen der Bean initialisiert werden muss Da der Cache verwendet wird, ist er extrem schnell. Nach dem Test dauert es nur etwa 300 Millisekunden, um Bean- und Map-Konvertierungen 10.000 Mal zu durchlaufen.

Also wird die dritte Methode empfohlen. Hier ist der entsprechende Code:

/**
* 将对象装换为map
* @param bean
* @return
*/
public static Map<String, Object> beanToMap(T bean) {
Map<String, Object> map = Maps.newHashMap();
if (bean != null) {
BeanMap beanMap = BeanMap.create(bean);
for (Object key : beanMap.keySet()) {
map.put(key+"", beanMap.get(key));
}
}
return map;
}

/**
* 将map装换为javabean对象
* @param map
* @param bean
* @return
*/
public static T mapToBean(Map<String, Object> map,T bean) {
BeanMap beanMap = BeanMap.create(bean);
beanMap.putAll(map);
return bean;
}

/**
* 将List转换为List<Map<String, Object>>
* @param objList
* @return
* @throws JsonGenerationException
* @throws JsonMappingException
* @throws IOException
*/
public static List<Map<String, Object>> objectsToMaps(List objList) {
List<Map<String, Object>> list = Lists.newArrayList();
if (objList != null && objList.size() > 0) {
Map<String, Object> map = null;
T bean = null;
for (int i = 0,size = objList.size(); i < size; i++) {
bean = objList.get(i);
map = beanToMap(bean);
list.add(map);
}
}
return list;
}

/**
* 将List<Map<String,Object>>转换为List
* @param maps
* @param clazz
* @return
* @throws InstantiationException
* @throws IllegalAccessException
*/
public static List mapsToObjects(List<Map<String, Object>> maps,Class clazz) throws InstantiationException, IllegalAccessException {
List list = Lists.newArrayList();
if (maps != null && maps.size() > 0) {
Map<String, Object> map = null;
T bean = null;
for (int i = 0,size = maps.size(); i < size; i++) {
map = maps.get(i);
bean = clazz.newInstance();
mapToBean(map, bean);
list.add(bean);
}
}
return list;
}

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie Objekte in Java mit BeanMap in Karten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen