Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
import java.util.function.Function;
public class Main {
public static void main(String[] args) {
Function<Integer, Integer> f = x -> x + 1;
Function<Integer, Integer> g = x -> x * 2;
System.out.println(f.andThen(g).apply(3));
}
}8
- Ждать
7:f.andThen(g)читается слева направо — сначалаf, потомgот её результата, поэтому 3 превращается в 4, а затем в 8. - Ждать
4или6: две функции стоят цепочкой,gполучает значение, которое вернулаf, аapplyвозвращает результатg.
- Что напечатает
f.compose(g).apply(3)для тех жеfиg? - Почему
Functionостаётся функциональным интерфейсом, хотя у него есть методandThen?