首页 > 解决方案 > 在 Java 中将对象转换为 ArrayList

问题描述

我有一个 < String, Object > 的地图。在某些键上,对象可能是某些键上的字符串值,它可能是列表。例如

MyMap = { "Name" : "Captain America" , "Hobbies" : ["beating people", "drawing", ".."] }

所以,我尝试访问这个列表,

List<String> hobbies = new ArrayList<String>().addAll(MyMap.get("Hobbies");

但这会引发异常

The method addAll() in Collection() is not applicable for type {Object}

但是正如很多人建议的那样,我尝试了这个

List<String> hobbies = new ArrayList<String>((List<String>)MyMap.get("Hobbies"));

这也会引发一个错误,指出它无法转换。这个怎么做。谁能帮我这个

标签: java

解决方案


你至少可以有一个项目的列表而不是字符串。所以它看起来像:

MyMap = { "Name" : ["Captain America"] , "Hobbies" : ["beating people", "drawing", ".."] }

然而,这似乎应该是一个类而不是一个地图。它可能看起来像:

public class SuperHero {
   private String name;
   private List<String> hobbies;

   ...
}

推荐阅读