You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Stream<String>生成Stream<CustomType>并简化映射样板代码

解决方案

Java 标准库没有内置对应的 Stream 转换 API,你可以自行封装一个通用的转换工具方法,一次编写后所有同类场景都可复用,完全满足你的要求:

  1. 首先封装通用工具函数,可放在项目公共工具类中:
import java.util.function.Function;
import java.util.function.Supplier;
import java.util.function.BiConsumer;

public class StreamUtils {
    public static <T, R> Function<T, R> buildBean(Supplier<R> beanSupplier, BiConsumer<R, T> setter) {
        return value -> {
            R bean = beanSupplier.get();
            setter.accept(bean, value);
            return bean;
        };
    }
}
  1. 业务代码中直接调用即可,不需要修改原有的CustomType类,也不用手写实例化样板代码:
import static 你的包名.StreamUtils.buildBean;

class Test {
    public static void main (String... args) {
        Stream<String> source = Stream.of("A", "B", "C"); 
        Stream<CustomType> result = source.map(buildBean(CustomType::new, CustomType::setId));  
    }
}

如果你的项目已经引入了 Spring、Apache Commons BeanUtils 之类的第三方工具库,也可以直接使用库中提供的对象构造/属性拷贝相关的工具类,和上面的方案逻辑一致,不需要额外自行封装工具函数。

内容的提问来源于stack exchange,提问作者Miy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 03:24:02