如何将字符串列表转换为Customer对象列表?Java流处理求助
解决方案
你需要在map操作里完成字符串拆分与对象属性填充,具体修改如下:
修改后的代码
public void method(List<String> customerString) { List<Customer> customers = customerString.stream() .map(str -> { // 按逗号拆分字符串,得到各属性值数组 String[] parts = str.split(","); // 按索引对应Customer的各个属性 return new Customer(parts[0], parts[1], parts[2], parts[3]); }) .toList(); } record Customer(String firstName, String lastName, String email, String amount) { }
关键说明
split(",")会把每个输入字符串按逗号分割成字符串数组,比如"Jane,Doe,jane@doe.com,199"会拆成["Jane", "Doe", "jane@doe.com", "199"]- 数组索引严格对应Customer的属性定义顺序:
parts[0]对应firstName,parts[1]对应lastName,parts[2]对应email,parts[3]对应amount - 如果输入字符串可能存在格式不规范的情况(比如逗号数量不对),可以添加判断避免数组越界,示例如下:
.map(str -> { String[] parts = str.split(","); if (parts.length != 4) { // 可根据业务需求抛出异常或返回默认值 throw new IllegalArgumentException("Invalid customer string format: " + str); } return new Customer(parts[0], parts[1], parts[2], parts[3]); })
内容的提问来源于stack exchange,提问作者learningUser
相关产品推荐
相关产品推荐

