5

私はここ数か月からJava 8を使用しており、ラムダについて頭を悩ませようとしています。コンサートについてはかなり理解しています。しかし、ラムダ呼び出しとしてのカスタム機能インターフェイスの実行に苦労しています。

Java Bifuctional インターフェイス実装を作成する場合

BiFunction<t1,t2,R> trade = (t1, t2) -> {
  // calling another method for merger
  return t1,t2;
};

以下のようにラムダと呼ぶことはできますか?

(a, b)-> trade: 

または、execute メソッドを作成する必要がありますか?

private int execute(BiFunction<t1,t2,R> trade, int a, int b){ 
    return trade.apply(a, b)
}

ラムダを呼び出すコードの例を次に示します。

BiFunction<t1,t2,R> trade = (t1, t2) -> {
                                         // calling another method for merger return t1+t2;
                                        };

public static void main(String[] args) {
  execute(trade , 1, 2);
}

private int execute(BiFunction<t1,t2,R> trade, int a, int b) {
  return trade.apply(a, b);
}

なぜコンパイラがこれを理解できないのか不思議です

public static void main(String[] args) { int i= (1,2) -> trade; }
4

2 に答える 2

7

このようにラムダを使用します

public static void main(String[] args) {
    BiFunction<Integer, Integer, Integer> add = (x, y) -> {
        return x + y;
    };
    System.out.println(add.apply(1, 2));
}
于 2015-06-18T16:41:05.613 に答える