java - 将 POJO 转换为 <K,V> 映射

标签 java map pojo

<分区>

Possible Duplicate:
How to convert a Java object (bean) to key-value pairs (and vice versa)?

转换 List<POJO> to a List<Map<K,V>>. 的最佳方法是什么? 是否有自定义方法/API?

K = POJO的字段名,V是对应的值

public class POJO implements Serializable{

String name;
String age;
//getters and setters
}

最佳答案

听起来像是适合老年人的工作Introspector .

工作示例:

// Don't be lazy like this, do something about the exceptions
public static void main(String[] args) throws Exception {
    List<POJO> pojos = new ArrayList<POJO>();
    POJO p1 = new POJO();
    p1.setAge("20");
    p1.setName("Name");
    pojos.add(p1);
    POJO p2 = new POJO();
    // ...
    System.out.println(convertCollection(pojos));
}

public static List<Map<String, ?>> convertCollection(Collection collection) 
        throws Exception {
    List<Map<String, ?>> list = new ArrayList<Map<String, ?>>();
    for (Object element : collection) {
        list.add(getValues(element));
    }
    return list;
}

public static Map<String, ?> getValues(Object o) 
        throws Exception {
    Map<String, Object> values = new HashMap<String, Object>();
    BeanInfo info = Introspector.getBeanInfo(o.getClass());
    for (PropertyDescriptor pd : info.getPropertyDescriptors()) {
        // This will access public properties through getters
        Method getter = pd.getReadMethod();
        if (getter != null)
            values.put(pd.getName(), getter.invoke(o));
    }
    return values;
}

关于java - 将 POJO 转换为 <K,V> 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6075385/

相关文章:

database - Hibernate 逆向工程数据库

android - Json 到 Android 中的 POJO 映射

java - 如何从一个方法返回不同数据类型的多个值?

java - 将 Set<Map.Entry<K, V>> 转换为 HashMap<K, V>

c++11 - 无法在 std::map 中使用 std::shared_ptr 作为值类型?

function - 在 Scala 中,如何链接生成带有过滤器的元组的映射?

java - 确定在代码中访问了 POJO 的哪些字段

java - 在 1 轴上旋转四元数?

java - 当引用 Java 对象模型中的关联时,为引用分配 null 值背后的相关性是什么?

java - 使用 Spring @SubscribeMapping 获取当前用户