如何从父类对象获取所有子类对象并将其放入映射JavaSpring

如何从父类对象获取所有子类对象并将其放入映射JavaSpring,java,spring,map,converter,Java,Spring,Map,Converter,如何从父类对象获取所有子类对象并将其放入映射JavaSpring public static Map<String, Object> ConvertObjectToMap(Object obj, Integer number) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException { Class<?> pomclass = obj

如何从父类对象获取所有子类对象并将其放入映射JavaSpring

 public static Map<String, Object> ConvertObjectToMap(Object obj, Integer number) throws            IllegalAccessException, IllegalArgumentException, InvocationTargetException {
    Class<?> pomclass = obj.getClass();
    pomclass = obj.getClass();
    Method[] methods = obj.getClass().getMethods();
    Map<String, Object> map = new HashMap<String, Object>();
    for (Method m : methods) {
        if (m.getName().startsWith("get") && !m.getName().startsWith("getClass")) {
            Object value = null;
            value = (Object) m.invoke(obj);
            if (number <= 1) {
                if (value.getClass().isAnnotation()) {
                    map.putAll(ConvertObjectToMap(value, number++));
                } else {
                    map.put(m.getName().substring(3), (Object) value);
                }
            }
        }
    }
    return map;
}
publicstaticmap ConvertObjectToMap(objectobj,整数)抛出IllegaAccessException、IllegalArgumentException、InvocationTargetException{
Class=obj.getClass();
pomclass=obj.getClass();
方法[]方法=obj.getClass().getMethods();
Map Map=newhashmap();
用于(方法m:方法){
if(m.getName().startsWith(“get”)和&!m.getName().startsWith(“getClass”)){
对象值=空;
value=(Object)m.invoke(obj);

如果(number那么如果我理解正确,您需要属性名称到其值的映射

使用commons beanutils而不是自己写这篇文章怎么样

import org.apache.commons.beanutils.PropertyUtils;

public static Map<String, Object> ConvertObjectToMap(Object obj, Integer number) throws            IllegalAccessException, IllegalArgumentException, InvocationTargetException {
    return PropertyUtils.describe(obj);
}
import org.apache.commons.beanutils.PropertyUtils;
公共静态映射ConvertObjectToMap(对象obj,整数)抛出IllegaAccessException、IllegalArgumentException、InvocationTargetException{
返回属性直到。描述(obj);
}
上面的代码将调用所有getter,因此这与您的相同。如果您想筛选“class”属性,您可以在descripe返回的映射上调用.remove(“class”)


更多信息:

没有得到问题的“放入映射java spring”部分。是否正确?不知道。您真正想做的是什么?从对象的方法中获取值并插入到映射中