mengmeng:
私はIDEでこのエラーを取得しています理由を把握することができないようUnexpected return value
、私はラムダを使用するときの方法から何かを返す必要があるとき。
public Employee getEmployee(long id) {
repository.findById(id).ifPresentOrElse(
empDetails -> {
return service.buildEmployee(empDetails);
},
() -> { throw new ResourceNotFoundException(); }
);
}
ありがとうございました!
彼らは次のとおりでした:
ifPresentOrElse
消費するために使用されるOptional
存在する場合の値を、そうでなければ他のいくつかのロジックを実行します。値を返すか、例外をスローするために使用することはできません。
代わりに、組み合わせることができますmap
とorElseThrow
:
public Employee getEmployee(long id) {
return repository.findById(id)
.map(service::buildEmployee)
.orElseThrow(ResourceNotFoundException::new);
}