возможно, с помощью API потока Java 8, создать поток, который не оценивается, пока не понадобится?
Я имею в виду.
У меня есть поток, который обрабатывает список элементов,в одной из промежуточных операций (карта) мне нужно прочитать, пройти через другой поток, и я хочу, чтобы этот поток был в другой переменной, которая будет использоваться через все другие объекты первого потока, но если нет объектов для обработки, я бы хотел избежатьобработать второй поток.
Я думаю, что проще проверить с помощью кода:
Message[] process(@Nullable Message[] messages) {
Stream<Function> transformationsToApply =
transformations
.stream()
.filter(transformation -> transformationIsEnabled(transformation.getLeft()))
.map(Pair::getRight);
return Arrays.stream(messages != null ? messages : new Message[0])
.filter(Objects::nonNull)
.map(agentMessage -> {
transformationsToApply.forEach(transformation -> processMessage(transformation, agentMessage));
return agentMessage;
})
.toArray(Message[]::new);
}
Я сомневаюсь в первом поколении потока, я хотел бы вернуть поток на основе списка, который я обработал, но я только хочу сделать, если это будет использоваться (И использовать то же самое для всех элементов сообщения).
Любая идея ..?