![](/img/trans.png)
[英]How to retrieve value from Map<ArrayList<String>, Object>
[英]How to safely retrieve ArrayList from Map<String, Object>
如何从 Map 中安全地检索一个 ArrayList 对象,其中为键存储的值是一个 ArrayList。 下面是我的代码。 有没有其他方法可以代替对 ArrayList 的强制转换?
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("A"); list.add("B");
Map<String, Object> map = new HashMap<String, Object>();
map.put("list", list);
System.out.println(map.get("list").getClass()); // class java.util.ArrayList
List<String> l = (ArrayList<String>)map.get("list");
}
我使用Jackson
的@JsonAnySetter
来存储Map<String, Object>
。 当我检查课程时,它们属于java. util.ArrayList
类java. util.ArrayList
java. util.ArrayList
。 (与问题中解释的确切情况相同)。
在尝试了几件事之后,我能够得到它。 我知道我有点晚了,但希望这会对将来的人有所帮助:
我有Map<String, Object>
Object
正在存储另一个Map
、 String
或ArrayList
所以我做了以下事情来从我的Map
获取值。 您可以将其用作参考,并根据您需要的类型执行不同的操作。
public void marshal(Map<String, Object> extensions) {
for (Map.Entry<String, Object> property : extensions.entrySet()) {
if (property.getValue() instanceof ArrayList) {
for (Object dupItems : (ArrayList<String>) property.getValue()) {
if (dupItems instanceof Map) {
//do whatever you want to do Map type
} else if(dupItems instanceof String) {
//do whatever you want to do for String type
}
}
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.