java.util.function.Functionの関数型インターフェースがとても便利だったので実装方法のご紹介です。

Java


例えば下記のようなオブジェクトがあったとして、

public class Hoge {
   String name;
   String address;
}

ある時は「name」が欲しいけどあるときは「address」が欲しい場合があるとします。
で、「name」と「address」の結果以外は同じ処理なので共通化したいって時に使えます。

実行環境

  • Java8

実装例


public String getName(Hoge hoge){
   getSample(hoge, d -> d.getName());
}

public String getAddress(Hoge hoge){
   getSample(hoge, d -> d.getAddress());
}

private String getSample(Hoge hoge, Function getHoge){
   return getHoge.apply(hoge);
}

これでgetName()のときは「name」が取れて、getAddress()のときは「address」が取れるようになります。

以上、Function型についてのお話でした。

スポンサーリンク