java - 在流中创建新对象并使用 setter

标签 java java-8 java-stream

我试图在流中创建一个对象,但我不想为该对象定义另一个构造函数;我想使用 setter 将值放在需要的地方。这可能吗?

pe.setExts(pDTO.getExts().stream().map(s->new P(arg1, arg2, ..., arg12)))...;

如您所见,我有很多参数,其中一些需要一些处理。我想在必要时避免进行此处理。

我正在寻找的可能是这样的(我不确定如何编写函数;我认为匿名函数在这里会很棒):

pe.setExts(pDTO.getExts().stream().map(s->{
    P p = new P();
    s->setExt1(p.getExt1());
    ...
    List<V> l = p.getExt12();
    List<X> finalL = null;
    [processing list l, populating finalL]
    s->setExt12(finalL);
}));

最佳答案

您不能使用不存在的构造函数。

我建议编写一个方法,它接受 s 变量并返回一个 P 变量。像这样的东西:

public static P generatePfromS(S s) {
     //convert S to P
}

然后你可以这样做:

pe.setExts(pDTO.getExts().stream().map(YourClass::generatePFromS).collect(toList()));

关于java - 在流中创建新对象并使用 setter ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29428723/

相关文章:

java - 如何构建标准化的 RESTful Java API

java - 从对象列表中获取属性的聚合列表(Java 8)

Java 8,如何使用 BiPredicate 将流元素分组到集合中

java - 以线性方式映射对象列表

java - 在后台线程中运行的可编辑任务队列

java - If(语句)延迟

java - 我应该在我的 Java 程序中使用多少个线程?

java - 为什么我没有使用 Android 中的界面从之前的 Activity 中获取其他 Activity 中的数据

java - 将一个对象拆分为对象列表 - 需要 JAVA8 解决方案

java - 有没有一种很好的方法来使用流过滤列表并获取项目列表或如果没有项目通过过滤器则获取 null ?