Прежде всего я думаю, что вы неправильно понимаете цель Optional
.
Суть Необязательно заключается в предоставлении средств для функции, возвращающей значение, указывающее на отсутствие возвращаемого значения . См. это обсуждение . Это позволяет вызывающей стороне продолжать цепочку быстрых вызовов методов.
Стюарт Маркс , Java и OpenJDK разработчик
Таким образом, чтобы правильно использовать Optional API
, вам необходимо переосмыслить свой код. Предполагая, что ваш each
имеет значение nullable aoid
, ваш .getAltOrderId()
метод должен быть реализован следующим образом:
Optional<String> getAltOrderId() {
return Optional.ofNullable(this.aoid);
}
Тогда вы можете использовать его следующим образом:
String aoid = createOrder.getAltOrderId().orElse("");
Пожалуйста, прочитайте этот пост для более подробного объяснения.
Если вы изменили метод .getQty()
для возврата Optional<String>
, это должно сделать то, что вам нужно:
int quantity = each.getQty()
.map(Integer::valueOf)
.orElse(0);