ホームページ > Java > &#&チュートリアル > Java 8 ラムダ式でチェックされた例外を処理するにはどうすればよいですか?

Java 8 ラムダ式でチェックされた例外を処理するにはどうすればよいですか?

DDD
リリース: 2024-12-16 21:22:19
オリジナル
385 人が閲覧しました

How Can I Handle Checked Exceptions in Java 8 Lambda Expressions?

Java 8 Lambda 関数での例外の処理

ラムダ式を使用してメソッドへの参照を作成する場合、例外の処理を考慮することが重要です。デフォルトの関数参照型は、IOException を拡張する例外などのチェック例外をサポートしていません。

この問題に対処するには、次の 2 つの方法があります。

1.カスタム関数インターフェイスの定義

コードが制御下にある場合は、チェック例外を明示的に宣言するカスタム関数インターフェイスを作成できます。

@FunctionalInterface
public interface CheckedFunction<T, R> {
  R apply(T t) throws IOException;
}
ログイン後にコピー

その後、カスタム関数インターフェイスを使用します。関数参照を定義するインターフェイス:

void foo(CheckedFunction<String, Integer> f) { ... }
ログイン後にコピー

2.チェックされたメソッドのラップ

チェックされたメソッドを制御できない場合は、チェックされた例外を宣言しないメソッドでそれをラップできます。

public Integer myWrappedMethod(String s) {
  try {
    return myMethod(s);
  } catch (IOException e) {
    throw new UncheckedIOException(e);
  }
}
ログイン後にコピー

ラップされたメソッドを使用する場合は、次のように関数参照を作成できます。

Function<String, Integer> f = (String t) -> myWrappedMethod(t);
ログイン後にコピー

または、例外処理を伴うラムダ式を使用することもできます。 block:

Function<String, Integer> f =
  (String t) -> {
    try {
      return myMethod(t);
    } catch (IOException e) {
      throw new UncheckedIOException(e);
    }
  };
ログイン後にコピー

これらの手法を使用すると、Java 8 ラムダ関数でチェック例外を適切に処理でき、コードの堅牢性と例外安全性を確保できます。

以上がJava 8 ラムダ式でチェックされた例外を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート