Вот мой метод:
public CompletionStage<Void> insert(List<HashAction> hashActionList) {
if(!hashActionList.isEmpty()) {
return ...
}
// what to return here ?
}
Я понятия не имею, что возвращать, если мой список пуст. Не уверен, что нуль хорош, так как потом мне пришлось бы проверять нуль.
Я попытался
return CompletableFuture.completedFuture(null);
Но я не совсем уверен, так как случайно выбрал одну реализацию CompletionStage.
CompletableFuture
является фактической реализациейCompletionStage
. Настолько, что интерфейсCompletionStage
имеет метод, единственная цель которого — превратить его вCompletableFuture
:#toCompletableFuture()
. Кроме того, это единственная общедоступная реализация, предоставляемая Java SE. Я хочу сказать, что возвращениеCompletableFuture
не вызывает подозрений. Кроме того, поскольку ваш метод возвращаетCompletionStage
, не имеет значения, какая реализация на самом деле возвращается. - person Slaw   schedule 26.11.2019!hashActionList.isEmpty()
и выполните все, что находится в этом блоке, независимо от того, пуст список или нет? Будет ли это уже правильно? Если вы просто пытаетесь оптимизировать случай пустого списка, верните эквивалент того, что вы возвращаете в неоптимизированном случае. См. также Как правильно создать уже завершенныйCompletableFuture<Void>
- person Holger   schedule 29.11.2019hashActionList
не пусто? - person Alexei Kaigorodov   schedule 02.12.2019