[解決済み] javaのラムダは1つ以上のパラメータを持つことができますか?
2022-04-14 01:56:20
質問
Javaでは、ラムダが複数の異なる型を受け入れることは可能ですか?
すなわち 単一の変数が動作します。
Function <Integer, Integer> adder = i -> i + 1;
System.out.println (adder.apply (10));
Varargs も動作します。
Function <Integer [], Integer> multiAdder = ints -> {
int sum = 0;
for (Integer i : ints) {
sum += i;
}
return sum;
};
//....
System.out.println ((multiAdder.apply (new Integer [] { 1, 2, 3, 4 })));
しかし、私は様々なタイプの引数を受け付けるものが欲しいのです、例えば。
Function <String, Integer, Double, Person, String> myLambda = a , b, c, d-> {
[DO STUFF]
return "done stuff"
};
主な用途は、便利なように関数の中に小さなインライン関数を持たせることです。
googleで調べたり、JavaのFunction Packageを調べたりしたのですが、見つかりませんでした。これは可能なのでしょうか?
どのように解決するのですか?
複数の型パラメーターを持つような機能的なインターフェイスを定義すれば可能です。そのような組み込み型はありません。(複数のパラメータを持つ限定的な型はいくつかあります)。
@FunctionalInterface
interface Function6<One, Two, Three, Four, Five, Six> {
public Six apply(One one, Two two, Three three, Four four, Five five);
}
public static void main(String[] args) throws Exception {
Function6<String, Integer, Double, Void, List<Float>, Character> func = (a, b, c, d, e) -> 'z';
}
と呼んでいます。
Function6
ここで 名前は自由ですが、Javaライブラリの既存の名前とぶつからないようにすればよいでしょう。
また、型パラメーターを可変個数定義する方法もありません。
Scalaのようないくつかの言語では、1、2、3、4、5、6などの型パラメータを持つ、組み込みのこのような型を多数定義しています。
関連
-
Java Error スレッド "AWT-EventQueue-0" で例外発生 java.lang.
-
[解決済み] Javaでパラメータの型の横にある3つの点は何を意味するのですか?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] Javaはパラメータのデフォルト値をサポートしていますか?
-
[解決済み] なぜJavaにはtransientフィールドがあるのですか?
-
[解決済み] Javaで現在のスタックトレースを取得するにはどうすればよいですか?
-
[解決済み] Java 8でリストのリストをリストにするにはどうしたらいいですか?
-
[解決済み] Java 8でラムダをパラメータとして受け取るメソッドを定義するにはどうすればよいですか?
-
[解決済み】JSP 2を使用して、JSPファイル内のJavaコードを回避するにはどうすればよいですか?
-
[解決済み】Java 8 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 実装 サイバーパンク風ボタン
おすすめ
-
スレッド "main "での例外をEclipseで解決 java.lang.Error: 未解決のコンパイル問題、コンパイラとパッケージの不整合
-
javaの模造品QQ WeChatのチャットルーム
-
プロジェクトの依存関係を解決できなかった 解決
-
eclipse の実行時に java 仮想マシンが見つからなかった
-
Spring boot runs with Error creating bean with name 'entityManagerFactory' defined in class path resource
-
spring-boot 401 このリソースにアクセスするには完全な認証が必要です エラー解決
-
javaでよく使われる英単語
-
SocketTimeoutExceptionの解決方法です。読み込みがタイムアウトした
-
javax.net.ssl.SSLException: 読み取りエラー: ssl=0xdeae5100: システムコール中の I/O エラー、接続 res
-
ブラウザでの大容量ファイルスライスアップロード(Javaサーバサイド実装)