ifPresentOrElseのラムダ関数を使用してUnexcepted戻り値

mengmeng:

私はIDEでこのエラーを取得しています理由を把握することができないようUnexpected return value、私はラムダを使用するときの方法から何かを返す必要があるとき。

public Employee getEmployee(long id) {
repository.findById(id).ifPresentOrElse(
                empDetails -> {
                    return service.buildEmployee(empDetails);
                },
        () -> { throw new ResourceNotFoundException(); }
        );

}

ありがとうございました!

彼らは次のとおりでした:

ifPresentOrElse​消費するために使用されるOptional存在する場合の値を、そうでなければ他のいくつかのロジックを実行します。値を返すか、例外をスローするために使用することはできません。

代わりに、組み合わせることができますmaporElseThrow

public Employee getEmployee(long id) {
    return repository.findById(id)
                     .map(service::buildEmployee)
                     .orElseThrow(ResourceNotFoundException::new);
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=293080&siteId=1