package org.example; import java.util.Arrays; import java.util.List; import java.util.function.BiFunction; import java.util.function.Function; public class FunctionExamples { public static void main(String[] args) { simpleFunction(); chainFunction(); biFunction(); biFunctionWithFunction(); } private static void biFunctionWithFunction() { BiFunction<Integer, Integer, Integer> biFunction = (x, y) -> x + y; Function<Integer, String> function = x -> "Hello".concat(String.valueOf(x)); System.out.println(" biFunctionWithFunction :" + biFunction.andThen(function).apply(2, 3)); } private static void biFunction() { BiFunction<Integer, Integer, List<Integer>> biFunction = (x, y) -> Arrays.asList(x + y); System.out.println(biFunction.apply(2, 3)); } private static void chainFunction() { Function<String, Integer> function1 = String::length; Function<Integer, Integer> function2 = x -> x * 3; System.out.println(function1.andThen(function2).apply("Hello Test")); } private static void simpleFunction() { Function<String, Integer> function = String::length; System.out.println(function.apply("Test")); } }