[解決済み】Java 8 lambda Void 引数
2022-04-03 22:28:19
質問
例えば、Java 8で次のような機能的なインターフェースがあるとします。
interface Action<T, U> {
U execute(T t);
}
また、引数や戻り値のないアクションが必要な場合もあります。そこで私は のようなものです。
Action<Void, Void> a = () -> { System.out.println("Do nothing!"); };
しかし、コンパイルエラーが発生するため、次のように記述する必要があります。
Action<Void, Void> a = (Void v) -> { System.out.println("Do nothing!"); return null;};
どっちが醜いんだろう。を取り除く方法はないのでしょうか?
Void
タイプ・パラメータは?
解決方法は?
を変換する小さなヘルパー関数があれば、このような構文が可能になります。
Runnable
を
Action<Void, Void>
(に配置することができます)。
Action
など)。
public static Action<Void, Void> action(Runnable runnable) {
return (v) -> {
runnable.run();
return null;
};
}
// Somewhere else in your code
Action<Void, Void> action = action(() -> System.out.println("foo"));
関連
-
[解決済み] publicId と systemId の間に空白が必要です。
-
[解決済み] java swingアプリケーションでJCEがプロバイダBCを認証できない
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] メソッドの戻り値の型を汎用的にするにはどうすればよいですか?
-
[解決済み】C++11のラムダ式って何?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ボタンでTextFieldをクリアする(Java)
-
[解決済み] このフォーマット(Tue Jul 13 00:00:00 CEST 2010)の日付をJavaの日付に変換する方法(文字列はalfrescoのプロパティに由来しています)
-
[解決済み] java.util.concurrent.ExecutionException 例外をどのように処理しますか?
-
[解決済み] Oracle DB : java.sql.SQLException: 閉じた接続
-
[解決済み] Androidのコールバックとは何ですか?重複
-
[解決済み] android.support.v4.app.FragmentActivity' で 'TAG' がプライベートアクセスされている。
-
[解決済み] javascriptでExpression言語を使うには?
-
[解決済み] ORA-01654: インデックスを拡張できません。
-
[解決済み] Spring ApplicationContext - リソースリーク: 'context' が閉じられない
-
[解決済み] Java8でvoid(Voidではない)メソッドに関数型を指定する方法は?