【问题标题】:How to set object fields from a HashMap directly in android如何直接在android中从HashMap设置对象字段
【发布时间】:2016-02-03 04:50:21
【问题描述】:

我想将hashMap 中的所有值分配给myObject

Map <String, Object> hashMap;

UserdefinedClass myObject; 

是否有任何可用的库或直接方法?

【问题讨论】:

  • 遍历地图并获取值
  • 感谢您的快速重播 :) ,但我正在寻找图书馆或直接方法。
  • 你不需要图书馆。如果列表很大,您可以使用映射器。

标签: java android reflection hashmap mapping


【解决方案1】:

第 1 步:向对象(实体类)添加值。 第 2 步:将 Object 作为值 wrt Key 添加到 Hashmap。 第 3 步:从 HasMap 中获取 Object 并使用迭代器对值进行迭代。

Iterator iterator = meMap.keySet().iterator();
while(iterator.hasNext()) {
String key=(String)iterator.next();
String value=(String)meMap.get(key);
}

欢迎询问任何问题。

【讨论】:

  • 如果Hashmap在LinkedHashMap结构中怎么办?
  • 所以需要迭代LinkedHashMap得到Hashmap,迭代Hashmap得到Object。休息一下,如果你能分享代码的sn-p,给出适当的答案会很有帮助。
【解决方案2】:

你可以遍历哈希映射,然后做任何你想做的事情......

Iterator<Entry<String,Object>> iterator = hashMap.entrySet().iterator();

        while(iterator.hasNext()){

            set = iterator.next();
            Object val = set.getValue();

        }

【讨论】:

    【解决方案3】:

    让我们假设这是你的 Hashmap

    Map <String, Object> hashMap = new HashMap<String,Object>();
    

    这是你的类对象,你想从 hashmap 中分配值。

    List<UserdefinedClass> myObject = new ArrayList<UserdefinedClass>();
    

    现在,您需要遍历 hashmap 并获取值,将其类型转换并将其存储在 myObject 列表中。

     Iterator it = hashMap.entrySet().iterator();
     while (it.hasNext()) {
            Map.Entry pair = (Map.Entry)it.next();
            myObject.add((UserdefinedClass)pair.getValue());
        } 
    

    【讨论】:

      【解决方案4】:

      看看Convert a Map to a POJO

      Jackson肯定可以在android项目中使用。 BeanUtils 被告知要快得多,但我没有在 Android 上使用它的经验。很有可能它也可以使用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-27
        相关资源
        最近更新 更多