Java 8:如何从A类对象列表中拼接字段生成字符串列表?
Java 8 实现List转指定格式字符串List
你可以利用Java 8的Stream API快速完成这个转换,核心是通过map操作转换每个A对象,再收集为目标List。
基础实现
假设你已有List<A>实例(命名为listOfA),代码如下:
import java.util.List; import java.util.stream.Collectors; class A { String title; B classb; } class B { String name; } public class Demo { public static void main(String[] args) { List<A> listOfA = ...; // 你的A类集合 List<String> resultList = listOfA.stream() // 拼接title和classb的name .map(a -> a.title + " " + a.classb.name) // 收集为String类型的List .collect(Collectors.toList()); } }
空值安全处理
如果classb、title或name可能为null,直接拼接会出现null字符串甚至抛出空指针异常,可借助Optional做安全处理:
List<String> safeResultList = listOfA.stream() .map(a -> { // 把null的title替换为空字符串 String title = java.util.Optional.ofNullable(a.title).orElse(""); // 安全获取classb的name,若classb为null则返回空字符串 String name = java.util.Optional.ofNullable(a.classb) .map(b -> b.name) .orElse(""); return title + " " + name; }) .collect(Collectors.toList());
内容的提问来源于stack exchange,提问作者Er KK Chopra
相关产品推荐
相关产品推荐

