Рассмотрим фрагмент кода:
imnport reactor.util.context.Context
public Context addAll (Context ctx, Map.Entry<String, Object> hashMap) {
Context ctxVar = ctx;
for (Map.Entry<String, Object> e : hashMap.entrySet()) {
if (e.getValue() != null) {
ctxVar = ctxVar.put(e.getKey(), e.getValue());
}
}
return ctxVar;
}
reactor.util.context.Context
является неизменным классом.Таким образом, put
объединяет старый контекст с новым добавленным значением и возвращает новый контекст.
Вопрос в том, существует ли более компактный способ "объединить" HashMap в неизменяемый объект с использованием потоков Java 8?(Не только для класса Context)
Примечание: я читал о сборке потока Java, и кажется, что это не работает, потому что я должен предоставить начальный Context
и объединить несколько контекстов после сопоставления, но воссоздать весь контекст для объединенияоперации, я думаю, это слишком много.