Когда я получаю сущность Студента из БД, хранилище возвращает обнуляемый Optional<Student>
.У него есть поле birthdate
.
Optional<Student> getStudentById(String id);
Итак, как я могу написать в функциональном стиле однострочник, чтобы получить дату его рождения, когда он равен нулю, возвращает ноль, а когда нет, возвращатьдата?
Я сейчас с:
Date birthdate = studentRepository.getStudentById(id).isPresent() ?
studentRepository.getStudentById(id).get().getBirthdate() : null;
Но я думаю, что это некрасиво использовать isPresent()
и троичную;это просто if/else
.
И это не будет работать:
Date birthdate = studentRepository.getStudentById(id).get().getBirthdate().orElse(null); // this does not work because orElse() cannot chain with getBirthdate()
Я с Java 8.
Не думаю, что это возможно безлюбые накладные расходы, но я открыт для предложений.