[解決済み】Java 8 Lambda関数が例外を投げる?
2022-04-16 09:09:02
質問
を持つメソッドへの参照を作成する方法は知っています。
String
パラメータを返し
int
であれば、それは
Function<String, Integer>
しかし、これは関数が例外を投げる場合、例えば次のように定義されているとすると、うまくいきません。
Integer myMethod(String s) throws IOException
このリファレンスをどのように定義すればよいのでしょうか?
どのように解決するのですか?
以下のいずれかを行う必要があります。
-
自分のコードであれば、チェックした例外を宣言する独自の関数インターフェイスを定義します。
@FunctionalInterface public interface CheckedFunction<T, R> { R apply(T t) throws IOException; }
を作成し、それを使用します。
void foo (CheckedFunction f) { ... }
-
それ以外の場合は、ラップ
Integer myMethod(String s)
を、チェックした例外を宣言していないメソッドで実行します。public Integer myWrappedMethod(String s) { try { return myMethod(s); } catch(IOException e) { throw new UncheckedIOException(e); } }
といった具合に。
Function<String, Integer> f = (String t) -> myWrappedMethod(t);
または
Function<String, Integer> f = (String t) -> { try { return myMethod(t); } catch(IOException e) { throw new UncheckedIOException(e); } };
関連
-
[解決済み] Apache Camelのログに簡単なテキストを記録する
-
[解決済み] Java- <T extends Comparable<T>>の意味?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み] Javaで数値を小数点以下n桁に丸める方法
-
[解決済み] Distinct() with lambda?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Application startメソッドで例外が発生する。JavaFx 11
-
[解決済み] java.lang.ClassCastException: java.util.Arrays$ArrayList は java.util.ArrayList にキャストできません。
-
[解決済み] java.lang.IncompatibleClassChangeError: Mongo クラスを実装しています。
-
[解決済み] JOGLまたはLWJGLの既成のプロジェクト
-
[解決済み] Java の条件付きコンパイル:コードチャンクをコンパイルしないようにするには?
-
[解決済み] javascriptでExpression言語を使うには?
-
[解決済み] eclipseからTomcatに物理的に発行されるmyjspはどこにあるのでしょうか?
-
[解決済み] Java- <T extends Comparable<T>>の意味?
-
[解決済み] アクティビティに割り当てられない
-
[解決済み] init-paramとcontext-param