diff --git a/core-java-modules/core-java-lambdas/src/main/java/com/baeldung/java8/lambda/exceptions/RecordStream.java b/core-java-modules/core-java-lambdas/src/main/java/com/baeldung/java8/lambda/exceptions/RecordStream.java new file mode 100644 index 000000000000..24ff8b69e810 --- /dev/null +++ b/core-java-modules/core-java-lambdas/src/main/java/com/baeldung/java8/lambda/exceptions/RecordStream.java @@ -0,0 +1,8 @@ +package com.baeldung.java8.lambda.exceptions; + +class RecordStream { + + static boolean validate(E record, Validator validator) { + return validator.test(record); + } +} \ No newline at end of file diff --git a/core-java-modules/core-java-lambdas/src/main/java/com/baeldung/java8/lambda/exceptions/Validator.java b/core-java-modules/core-java-lambdas/src/main/java/com/baeldung/java8/lambda/exceptions/Validator.java new file mode 100644 index 000000000000..bad5f788be3a --- /dev/null +++ b/core-java-modules/core-java-lambdas/src/main/java/com/baeldung/java8/lambda/exceptions/Validator.java @@ -0,0 +1,10 @@ +package com.baeldung.java8.lambda.exceptions; + +import java.util.function.Predicate; + +@FunctionalInterface +interface Validator extends Predicate { + + @Override + boolean test(T t); +} \ No newline at end of file diff --git a/core-java-modules/core-java-lambdas/src/test/java/com/baeldung/java8/lambda/exceptions/LambdaWildcardInferenceUnitTest.java b/core-java-modules/core-java-lambdas/src/test/java/com/baeldung/java8/lambda/exceptions/LambdaWildcardInferenceUnitTest.java new file mode 100644 index 000000000000..9f5259cc77d8 --- /dev/null +++ b/core-java-modules/core-java-lambdas/src/test/java/com/baeldung/java8/lambda/exceptions/LambdaWildcardInferenceUnitTest.java @@ -0,0 +1,15 @@ +package com.baeldung.java8.lambda.exceptions; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +class LambdaWildcardInferenceUnitTest { + + @Test + void whenImplicitlyTypedLambdaPassedToWildcardParameter_thenSuccess() { + assertTrue(RecordStream.validate(Boolean.TRUE, b -> b)); + assertFalse(RecordStream.validate(Boolean.FALSE, b -> b)); + } +} \ No newline at end of file