11月26日(木)1、2コマ目
今日、やったこと
- ラムダ式+HashMapの確認テスト
- 関数型インタフェース
今日の確認テスト
正10角形の面積を求める計算式が間違ってました。ごめんなさい。
とりあえず、ソースコードを公開しておきます。
IFigureAreaインタフェース
図形の面積計算クラスたちの共通インタフェース。
図形毎にこのインタフェースを実装して・・ではなく、実装メソッドが1つだけなので、ラムダ式を使って実装からインスタンス生成までできる。
Serviceクラス
IFigureAreaインタフェースをラムダ式で実装、インスタンス生成を行う。
生成したインスタンスはHashMapでキーとともに管理する。
あと、サーブレット等もありますが、大したことはないので公開しません。
今日のホワイトボード
関数型インタフェース
実装すべきメソッドが1つだけのインタフェースを「関数型インタフェース」と呼びます。
|
|
図 関数型インタフェース |
標準関数型インタフェース
結局、関数型インタフェースは
- 引数
- 戻り値
の違いしかありません。ラムダ式で実装、インスタンス生成をすることを考えると、インタフェース名やメソッド名はなんでもいいことになります。
そこで、ありがちな引数、戻り値の組み合わせであらかじめ関数型インタフェースをjava.util.functionパッケージに用意してくれています。これを標準関数型インタフェースと呼びます。
|
|
図 標準関数型インタフェース |
時間のフォーマット変換器に標準関数型インタフェースを使う
図のようなIConverterインタフェースを作りましたが、このインタフェースのメソッドは
引数・・int型1つ
戻り値・・String型
です。標準関数型インタフェースのなかから、この引数・戻り値の組み合わせとおなじインタフェースを探すと、IntFunctionになります。
ちなみにIntFunctionの実装メソッドはapply()です。
|
|
図 時間のフォーマット変換に標準型インタフェースを使う |



コメント