如何将对象 arrayList 解析为字符串数组?

How to parse an object arrayList to string array?

我有一个包含对象的 arrayList。 我需要将它解析为一个 array,所有元素都是字符串。

有什么想法吗?

首先,您应该覆盖要转换为字符串的 class 的 toString() 方法,以生成描述性字符串。 (可以使用@Data 或@ToString lombok 注解)

其次,您可以使用它从列表传递到数组

String[] array = objectList.stream().map(element -> element.toString()).toArray(String[]::new);

假设列表中的对象已正确覆盖方法 toString,最好使用方法 Objects::toString,它允许将对象空安全地转换为字符串。

  1. 使用for-each循环:
public static String[] convert(List<MyObject> list) {
    String[] result = new String[list.size()];

    int i = 0;
    for (MyObject obj : list) {
        result[i++] = Objects.toString(obj);
    }

    return result;
}
  1. 使用流API
public static String[] convert(List<MyObject> list) {
    return list.stream()
               .map(Objects::toString)
               .toArray(String[]::new);
}