nologyance.net

日々のアウトプット

Java初心者の壁 ラムダ式を理解する(1)

初心者の壁

初めて学んだ(学んでいる)プログラミング言語Javaだという方は多いのではないでしょうか。 かくいう私も、新卒で入った会社の研修でJavaを学びました。

その後も、業務で扱ってきた言語は8割以上がJavaでした。 一年ほど立った頃、現場が移動になりました。 新しい現場でもJavaのシステムに関わることになりました。 まずは現場に慣れるためにソースコードリーディング。

そこで受けた衝撃は二度と忘れないでしょう。 そう、そこにはJavaという名前の見たことのない言語で書かれたソースがあったのです。 ラムダ式、脳内で文字にするのも一苦労なその構文は、その後の私を随分と苦しめてくれました。

なぜ難しく感じるのか

色々と原因はあるのでしょうが、一番ひっかかるのはその奇妙な構文でしょう。 他の構文と比べても明らかに異質です。

段階的に理解する

ラムダ式を理解する方法として、一番やってはいけないことはずばり丸暗記です。 ラムダ式の本質はその柔軟性です。 つまり、ラムダ式の書き方だけを覚えても、応用がまるで効かないため、いざ自分でコーディングする際には全然使えないのです。 したがって、段階を追ってその意味を理解していくことがラムダ式習得への近道です。

匿名クラス

まずは匿名クラスについて理解しましょう。 匿名クラスとは、インターフェースの宣言と実装を一度に行うことができる構文です。

Hoge hoge = new Hoge() {
                public void huga() {
                }
            };

この例では、hugaメソッドを持つHoge型のインターフェースを宣言と同時に実装しています。 アノテーションがついていませんが、hugaメソッドはオーバーライドされています。 実装クラスの名前は定義されていません。これが匿名クラスと言われる理由です。