在流中创建新对象并使用设置器
creating new object inside a stream and use the setters
我正在尝试在流中创建一个对象,但我不想为该对象定义另一个构造函数;我想使用设置器将值放在需要的地方。这可能吗?
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
变量和 return 一个 P
变量的方法。类似于:
public static P generatePfromS(S s) {
//convert S to P
}
然后你可以这样做:
pe.setExts(pDTO.getExts().stream().map(YourClass::generatePFromS).collect(toList()));
我正在尝试在流中创建一个对象,但我不想为该对象定义另一个构造函数;我想使用设置器将值放在需要的地方。这可能吗?
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
变量和 return 一个 P
变量的方法。类似于:
public static P generatePfromS(S s) {
//convert S to P
}
然后你可以这样做:
pe.setExts(pDTO.getExts().stream().map(YourClass::generatePFromS).collect(toList()));