tipo de objeto java para asignar

solo por referencia

@Log4j
public class ObjectToMap { /*简单Object转成map*/ public static Map<String,String> toMap(Object o){ Map<String,String> map=new HashMap<String, String>(); Campo[] campos=o.getClass().getDeclaredFields(); intente { for (int i=0;i<fields.length;i++) { String nombre=campos[i].getName(); Campo campo=o.getClass().getDeclaredField(nombre); campo.setAccessible(verdadero); if (null!=campo){ map.put(nombre,campo.get(o).toString()); } } }catch(Exception e){ log.error(e.getMessage(),e); } mapa de retorno; } /*复杂Objeto转成mapa*/



















Mapa estático público<Cadena, Objeto> toObjectMap(Objeto objeto) { Mapa<Cadena, Objeto> mapa = nuevo HashMap<Cadena, Objeto>(); toMap(object.getClass(), objeto, mapa); mapa de regreso; } private static void toMap(Clase<> clazz, Objeto objeto, Mapa<Cadena, Objeto> mapa) { Método[] métodos = clazz.getDeclaredMethods(); if (métodos! = nulo && métodos.longitud > 0) { for (Método método: métodos) { String mname = método.getName(); if (mname.startsWith(“get”) && método.getParameterTypes().length == 0) { intentar { String fieldName = mname.substring(3, 4).toLowerCase() + mname.substring(4); if (“serialVersionUID”.














} else if (“clase”.equals(fieldName)) { continuar; } Objeto fieldValue = método.invoke(objeto, nulo); if (fieldValue! = nulo) { map.put(fieldName, fieldValue); } } catch (IllegalAccessException e) { log.info(e.getMessage(),e);







} catch (InvocationTargetException e) { log.info(e.getMessage(),e); } catch (SecurityException e) { log.error(e.getMessage(),e); } } } } if (clazz.getSuperclass() != nulo) { toMap(clazz.getSuperclass(), objeto, mapa); } }










public static void main(String[] args)lanza Excepción { Pruebas pruebas=nuevas Pruebas(10,“zhangsan”); ObjectToMap om= nuevo ObjectToMap(); Mapa<Cadena,Cadena> mapa= om.toMap(pruebas); System.out.println(map.toString()); Mapa<Cadena,Objeto> omap= om.toObjectMap(pruebas); System.out.println(omap.toString()); }






}
pruebas de clase { privada int edad; nombre de cadena privada;

Pruebas públicas (int edad, nombre de cadena) { this.age = edad; this.nombre=nombre; } public int getAge() { edad de retorno; }





public void setAge(int edad) { this.age = edad; }

public String getName() { devolver nombre; }

public void setName (nombre de cadena) { this.name = nombre; } }


Supongo que te gusta

Origin blog.csdn.net/web13618542420/article/details/126723310
Recomendado
Clasificación