我有一个包含对象的 arrayList。 我需要将它解析为一个数组,其中所有元素都是字符串。
有什么想法吗?
答案 0 :(得分:2)
假设列表中的对象正确覆盖了方法 toString
,最好使用方法 Objects::toString
,它允许将对象安全地转换为字符串。
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;
}
public static String[] convert(List<MyObject> list) {
return list.stream()
.map(Objects::toString)
.toArray(String[]::new);
}
答案 1 :(得分:1)
首先,您应该覆盖要转换为 String 的类的 toString() 方法,以生成描述性字符串。 (可以使用@Data 或@ToString lombok 注释)
其次,您可以使用它从列表传递到数组
String[] array = objectList.stream().map(element -> element.toString()).toArray(String[]::new);