Lambda als Funktionsparameter in Java

avatar

In Java ist es auch möglich eine Lambda Expression als Funktionsparameter zu übergeben. Dies funktioniert genauso als wenn man eine Variable übergibt. Der Unterschied ist nur, dass in der Funktion die Lambda Expression ausgeführt werden muss. Dafür gibt es je nach Lambda Funktionen wie apply, accept, andThen usw.

import java.util.function.BiConsumer;

public class LambdaAsParameter {

    /* expect the functional interface 'BiConsumer' as parameter */
    public void concatWords(String[] words, StringBuilder sb, BiConsumer<String, StringBuilder> concatlambda){
        for(var word : words){
            concatlambda.accept(word, sb);
        }
        System.out.print(sb.toString());
    }

    public static void main(String[] args){
        LambdaAsParameter concat = new LambdaAsParameter();
        final String[] words = {"dorf ","schule ","kaffee ","himmel ","fluss "};
        StringBuilder sb = new StringBuilder();
        /* pass a lmabda expression as function parameter */
        concat.concatWords(words, sb, (x,y) -> {y.append(x);});
    }
}



0
0
0.000
3 comments