Выберите все ответы, где код компилируется:
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
.
Итак, в результате анализа можно сделать вывод, что компилируются следующие строки: