有什么方法可以将字符串[某类的对象]转换为某类的对象?

时间:2018-06-27 08:56:59

标签: java collections

private static void method() {
List<HashMap<Integer, String>> repeating = new ArrayList<>();

for(int i = 0; i < 5; i++) {
  HashMap<Integer, String> group = new HashMap<>();
  group.put(958, "958value-" + i);
  group.put(959, "959value-" + i);
  group.put(960, "960value-" + i);
  repeating.add(group);
}

/*Is there any way to change listObj to again List object*/
String listObj = repeating.toString();}

我将得到要转换为List对象的List对象的字符串。有什么办法可以将该字符串转换为List?

3 个答案:

答案 0 :(得分:1)

您可以使用序列化而不是toString。 看看Gson / Jackson。 该库允许将对象转换为字符串并将字符串解析为对象。

例如,

Gson允许您将任何对象转换为JSON,然后以这种方式返回到该对象:

List<String> list1 = new ArrayList<>();
// Populate the list
Gson gson = new Gson();
String jsonifiedList = gson.toJson(list1);

然后使用列表的String形式执行所需的操作并检索它:

List<String> list2 = gson.fromJson(jsonifiedList, new TypeToken<List<String>>(){}.getType());

如果您的列表包含更复杂的对象,则可能需要向JsonSerializer对象中添加一个Gson,以便它知道如何创建和解析JSON。

答案 1 :(得分:0)

通常情况下,答案是否定的。在某些情况下,类的toString方法会生成与该类中的相应解析方法或构造函数兼容的字符串。然后,您可以转换回去。通常,将对象转换为字符串格式时会丢失信息。

答案 2 :(得分:0)

是的,尽管我没有从您的问题中得到一切,但应该有可能

创建对象列表的列表

然后使用来迭代地图

 for (Map.Entry<String, String> entry : yourmap.entrySet()) {
          new List<YourObject> lst;
          lst.add(new Object(entry.getkey, entry.getvalue));

但是我建议您不要使用和映射,我不明白为什么您需要它,而如果想要对其进行迭代,则更喜欢使用一个数组列表