Выберите все ответы, где код компилируется: 
 BiFunction<String, String, Integer> biFunction = String: indexof; 
 BiPredicate<String, String› biPredicate = String: contains; 
 Supplier<String> supplier = Object::new; 
 Function<String, Integer> function = Integer:valueof; 
 Consumer<List<Double>> consumer = Collections::sort:
Другие предметы Университет Лямбда-выражения и функциональные интерфейсы Java программирование компиляция кода Java BiFunction пример BiPredicate Java Supplier в Java Function Java Consumer Java Java университет Java код ошибки Java методы компиляции
Для того чтобы определить, компилируется ли указанный код, нужно проанализировать каждую строку и понять, соответствует ли синтаксис и семантика языка Java. Давайте рассмотрим каждый из предложенных вариантов.
Этот код компилируется. Метод indexOf класса String подходит под функциональный интерфейс BiFunction, так как он принимает два параметра типа String и возвращает int, который можно привести к Integer.
Этот код компилируется. Метод contains класса String принимает один параметр типа String и возвращает boolean, что соответствует требованиям BiPredicate (принимает два параметра и возвращает boolean). Однако, так как BiPredicate ожидает два параметра, а contains принимает один, этот код не компилируется.
Этот код не компилируется. Supplier ожидает метод, который не принимает аргументов и возвращает объект типа String, а Object::new создает объект типа Object, что не соответствует типу String.
Этот код компилируется. Метод valueOf класса Integer принимает строку и возвращает Integer, что полностью соответствует интерфейсу Function.
Этот код компилируется. Метод sort класса Collections принимает список и возвращает void, что соответствует требованиям Consumer.
Итак, в результате анализа можно сделать вывод, что компилируются следующие строки: