如何从父类对象获取所有子类对象并将其放入映射JavaSpring
如何从父类对象获取所有子类对象并将其放入映射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
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”部分。是否正确?不知道。您真正想做的是什么?从对象的方法中获取值并插入到映射中