Создание нового объекта внутри потока и использование сеттеров
Я пытаюсь создать объект внутри потока, но я не хочу определять другой конструктор для объекта; Я хотел бы использовать установщики, чтобы поместить значения, где это необходимо. Это возможно?
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);
}));
1 ответ
Решение
Вы не можете использовать конструктор, которого там нет.
Я бы предложил написать метод, который бы s
переменная и возвращает P
один. Что-то вроде:
public static P generatePfromS(S s) {
//convert S to P
}
и тогда вы можете просто сделать:
pe.setExts(pDTO.getExts().stream().map(YourClass::generatePFromS).collect(toList()));