How often does the letter "r" occur in:
Q: Задача на функциональные интерфейсы java 8 Не могу решить задачу из базового курса java. Задача на функциональные интерфейсы  которые добавлены в java 8, поэтому думаю много кому будет полезно. Дан предикат condition и две функции ifTrue и ifFalse. Напишите метод ternaryOperator, который из них построит новую функцию, возвращающую значение функции ifTrue, если предикат выполнен, и значение ifFalse иначе.
public static <T, U> Function<T, U> ternaryOperator(
        Predicate<? super T> condition,
        Function<? super T, ? extends U> ifTrue,
        Function<? super T, ? extends U> ifFalse) {

    return null; // your implementation here

}

Пример использования метода:
Predicate<Object> condition = Objects::isNull;
Function<Object, Integer> ifTrue = obj -> 0;
Function<CharSequence, Integer> ifFalse = CharSequence::length;
Function<String, Integer> safeStringLength = ternaryOperator(condition, ifTrue, ifFalse);

Результирующая функция будет для нулевых ссылок на String возвращать 0, а для ненулевых ссылок возвращать длину строки.
Т.е. к примеру Integer a = safeStringLength.apply("aaa") должно вернуть 3,
а Integer a = safeStringLength.apply(null) должно вернуть 0. 
javadoc интерфейсов тут http://docs.oracle.com/javase/8/docs/api/?java/util/function/package-summary.html.
Т.е. насколько я понимаю нужно взять объект переданый в наш Function<T, U> ( в данном случае это строка "ааа" и передать его в condition.Test() Если  condition.Test(T t)= true  то возвращаем ifTrue, иначе ifFalse.Т.к. тут еще джинерики замешаны все мои попытки подчеркивает компилятор). Есть идеи?

A: public static <T, U> Function<T, U> ternaryOperator(
        Predicate<? super T> condition,
        Function<? super T, ? extends U> ifTrue,
        Function<? super T, ? extends U> ifFalse) {

    return t -> condition.test(t) ? ifTrue.apply(t) : ifFalse.apply(t);

}

Объяснять нужно или сами разберетесь? 
condition::test :: T -> Bool
ifTrue::apply :: T -> U
ifFalse::apply :: T -> U


user
The text includes fifty-five "r"s in total.
assistant