Rumah  >  Artikel  >  Java  >  Cara menukar objek kepada Peta dalam Java - menggunakan BeanMap

Cara menukar objek kepada Peta dalam Java - menggunakan BeanMap

PHPz
PHPzke hadapan
2023-05-08 15:49:081900semak imbas

Terdapat banyak cara untuk menukar kacang dan peta Java, seperti:

1 Menukar kacang kepada json melalui ObjectMapper, dan kemudian menukar json kepada peta Walau bagaimanapun, kaedah ini adalah rumit dan tidak cekap ujian, ia mengambil masa 12 saat untuk menukar 10,000 biji dalam satu gelung! ! ! Ia tidak disyorkan untuk menggunakan

2. Dapatkan atribut dan nilai kelas kacang melalui refleksi Java, dan kemudian tukarkannya kepada pasangan nilai kunci yang sepadan dengan peta Kaedah ini adalah yang kedua terbaik , tetapi ia lebih menyusahkan sedikit

3. Melalui kaedah dalam kelas net.sf.cglib.beans.BeanMap, kaedah ini amat berkesan. Perbezaan antara kaedah ini dan kaedah kedua ialah ia menggunakan Cache. Kacang perlu dimulakan apabila ia mula-mula dibuat, dan kemudian cache digunakan Oleh itu, ia adalah sangat pantas selepas ujian, ia hanya mengambil masa kira-kira 300 milisaat untuk menggelungkan penukaran kacang dan memetakan 10,000 kali.

Jadi, kaedah ketiga adalah disyorkan. Berikut ialah kod yang berkaitan:

/**
* 将对象装换为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;
}

Atas ialah kandungan terperinci Cara menukar objek kepada Peta dalam Java - menggunakan BeanMap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam