私は明示的にあいまいなメソッド呼び出しを入力し、それを使用することはできますか?

EMC:

私は確かにこれはどこかに答えているんだけど、私はそれを見つけるために十分で検索用語を持っていません。私はio.vavr.control.Tryパッケージを使用しています、と私は結果のストリーム内の要素にgetOrElseThrowメソッドを使用しようとすると、この方法は、io.vavr.Valueクラスであいまいです。私は私が何とか使用したい、またはそれが不可能である方法を指定することはできますか?

ここでは、画像の説明を入力します。

MC皇帝:

あなたは多くのオプションを持っています:

  • 希望型に明示的なキャストを追加します。

    .map(rsp -> rsp.getOrElseThrow((Supplier<NotFoundException>) NotFoundException::new))
    .map(rsp -> rsp.getOrElseThrow((Function<? super Throwable, NotFoundException>) NotFoundException::new))
    
  • 代わりに、メソッド参照のラムダ式を使用します。

    .map(rsp -> rsp.getOrElseThrow(() -> new NotFoundException()))
    .map(rsp -> rsp.getOrElseThrow(t -> new NotFoundException(t)))
    
  • 外側のラムダパラメータの明示的な型を使用します。

    .map((Value<…> rsp) -> rsp.getOrElseThrow(NotFoundException::new))
    .map((Try<…> rsp) -> rsp.getOrElseThrow(NotFoundException::new))
    

おすすめ

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