コールバック関数とは
コールバック関数とは、引数として他の関数に渡され、外側の関数の中で呼び出されて、ルーチンやアクションを完了させる関数のことを指します。
コールバック関数についてのサンプル
バッチで以下関数をコールバックで実行するサンプルとなります。
- 1加算した結果を返却する関数 : plusOne
- 1減算した結果を返却する関数 : minusOne
- 2倍した結果を返却する関数 : double
- 3倍した結果を返却する関数 : triple
関数の定義
引数で関数を受け取るコールバック関数を定義したクラスを作成します。
GenericFunction.java
public class GenericFunction<T, R> implements Function<T, R> {
public final String functionName;
private final Function<T, R> function;
public GenericFunction(String functionName, Function<T, R> function) {
this.functionName = functionName;
this.function = function;
}
@Override
public R apply(T t) {
return function.apply(t);
}
}
サンプルコードに記載したようにListに各関数を定義し、定義した関数を順次実行するサンプルになります。
public static void main(String[] args) {
ArrayList<GenericFunction<Integer, Integer>> list = new ArrayList<>();
list.add(new GenericFunction<>("plusOne", n -> n + 1));
list.add(new GenericFunction<>("minusOne", n -> n - 1));
list.add(new GenericFunction<>("double", n -> n * 2));
list.add(new GenericFunction<>("triple", n -> n * 3));
for (GenericFunction<Integer, Integer> function : list) {
System.out.println(function.functionName + ": " + function.apply(5));
}
}
// 処理結果
plusOne: 6
minusOne: 4
double: 10
triple: 15
まとめ
今回はコールバック関数の利用方法についてサンプルコードを作成してみました。
業務でも頻繁に利用することもあると思いますので、実例を交えたことで理解が深まったかと思います。