Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ Javaにおけるメソッドリファレンス | 高度なJava機能とテクニック
Javaデータ構造

bookJavaにおけるメソッドリファレンス

メニューを表示するにはスワイプしてください

Stream API の実践に入る前に、ラムダ式のいくつかのショートカットについて確認します。プログラマーはこれらの「ショートカット」を 構文糖衣(シンタクティックシュガー)と呼びます。

この章では、メソッド参照 と、それを ラムダ式の代替 として使用する方法について説明します。

メソッド参照

ラムダ式 の簡単な例を見て、それを メソッド参照 に置き換えてみましょう。

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> example = Arrays.asList("c", "o", "d", "e", "f", "i", "n", "i", "t", "y"); example.stream().map(e -> e.toUpperCase()).forEach(e -> System.out.print(e)); } }

2つのラムダ式を使用するのはあまりエレガントではありません。特に、それらを宣言されているクラスからのメソッド参照に短縮できる場合はなおさらです。

構文は次のようになります。

Example.java

Example.java

copy
1
(Class::Method)

上記のコードをメソッド参照を使って改善:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> example = Arrays.asList("c", "o", "d", "e", "f", "i", "n", "i", "t", "y"); example.stream().map(String::toUpperCase).forEach(System.out::print); } }

toUpperCaseメソッドはStringクラスの一部であるため、String::toUpperCaseという構文を使用。メソッド参照を使う場合、各要素に対して操作が適用されるため、ラムダ式を使う必要はない。また、画面への出力もSystem.out::printに置き換えており、これもメソッド参照。プログラムは各要素にSystem.out.print()メソッドを適用する。

ちなみに、IntelliJ IDEAは、可能な場合はラムダ式をメソッド参照に置き換えることを常に提案するため、毎回構文を覚える必要はない。

このように、IntelliJ IDEA自体がメソッド参照を使用してコードを改善することを提案します。

まとめ

まとめると、メソッド参照はプログラム上の負担を増やすことはありません。プロセスを最適化するわけではありませんが、複雑にもなりません。この構文は単に記述するコード量を少し減らし、可読性を向上させるためのものです。ラムダ式を使うかメソッド参照を使うかはあなた次第です。例えば、私はラムダ式を記述する方が分かりやすいと感じており、その後IntelliJが自動的にメソッド参照に置き換えてくれます

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 4.  4

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 4.  4
some-alt