diff --git a/10-java-functional-stream/task01/src/com/example/task01/Task01Main.java b/10-java-functional-stream/task01/src/com/example/task01/Task01Main.java index fa5f9a2fa..93e56ac51 100644 --- a/10-java-functional-stream/task01/src/com/example/task01/Task01Main.java +++ b/10-java-functional-stream/task01/src/com/example/task01/Task01Main.java @@ -1,29 +1,28 @@ package com.example.task01; import java.io.IOException; +import java.util.Objects; import java.util.function.Function; import java.util.function.Predicate; -public class Task01Main { - public static void main(String[] args) throws IOException { - - // TODO С корректно реализованным методом ternaryOperator должен компилироваться и успешно работать следующий код: - - /* +public class Task01Main +{ + public static void main(String[] args) throws IOException + { Predicate condition = Objects::isNull; Function ifTrue = obj -> 0; Function ifFalse = CharSequence::length; Function safeStringLength = ternaryOperator(condition, ifTrue, ifFalse); - */ - } public static Function ternaryOperator( Predicate condition, Function ifTrue, - Function ifFalse) { - - return null; // your implementation here - + Function ifFalse) + { + Objects.requireNonNull(condition); + Objects.requireNonNull(ifTrue); + Objects.requireNonNull(ifFalse); + return ter -> condition.test(ter) ? ifTrue.apply(ter) : ifFalse.apply(ter); } }