0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

コールバック関数について

Posted at

コールバック関数とは

コールバック関数とは、引数として他の関数に渡され、外側の関数の中で呼び出されて、ルーチンやアクションを完了させる関数のことを指します。

コールバック関数についてのサンプル

バッチで以下関数をコールバックで実行するサンプルとなります。

  • 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

まとめ

今回はコールバック関数の利用方法についてサンプルコードを作成してみました。
業務でも頻繁に利用することもあると思いますので、実例を交えたことで理解が深まったかと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?