1. ホーム
  2. java

[解決済み] Javaにおけるコールバック関数

2022-03-03 08:03:16

質問

Javaメソッドでコールバック関数を渡す方法はありますか?

私が真似しようとしている動作は、.Net Delegateが関数に渡されるものです。

別のオブジェクトを作成することを提案する人を見ましたが、それはやりすぎのように思えますが、私はやりすぎが唯一の方法である場合もあると認識しています。

どのように解決するのですか?

.NETのanonymous delegateのような意味なら、Javaのanonymous classも使えると思うのですが。

public class Main {

    public interface Visitor{
        int doJob(int a, int b);
    }


    public static void main(String[] args) {
        Visitor adder = new Visitor(){
            public int doJob(int a, int b) {
                return a + b;
            }
        };

        Visitor multiplier = new Visitor(){
            public int doJob(int a, int b) {
                return a*b;
            }
        };

        System.out.println(adder.doJob(10, 20));
        System.out.println(multiplier.doJob(10, 20));

    }
}