diff --git a/core-java-modules/core-java-11-2/README.md b/core-java-modules/core-java-11-2/README.md index b6d724ea04..26715fafd9 100644 --- a/core-java-modules/core-java-11-2/README.md +++ b/core-java-modules/core-java-11-2/README.md @@ -3,7 +3,7 @@ 本模块中包含有关 Java 11 核心新增功能的的一些文章 ### 相关文章 -- [Guide to Java 8 Optional](https://www.baeldung.com/java-optional) +- [Java 8 开始新增的 Optional 类](https://www.ossez.com/t/java-8-optional/13964) - [Guide to Java Reflection](http://www.baeldung.com/java-reflection) - [Guide to Java 8’s Collectors](https://www.baeldung.com/java-8-collectors) - [New Features in Java 11](https://www.baeldung.com/java-11-new-features) diff --git a/core-java-modules/core-java-11-2/src/test/java/com/ossez/optional/OptionalUnitTest.java b/core-java-modules/core-java-11-2/src/test/java/com/ossez/optional/OptionalUnitTest.java index ac888db380..571c0a5ec5 100644 --- a/core-java-modules/core-java-11-2/src/test/java/com/ossez/optional/OptionalUnitTest.java +++ b/core-java-modules/core-java-11-2/src/test/java/com/ossez/optional/OptionalUnitTest.java @@ -76,16 +76,16 @@ public class OptionalUnitTest { // Condition Action With ifPresent() @Test public void givenOptional_whenIfPresentWorks_thenCorrect() { - Optional opt = Optional.of("baeldung"); + Optional opt = Optional.of("HoneyMoose"); opt.ifPresent(name -> LOG.debug("{}", name.length())); } // returning Value With get() @Test public void givenOptional_whenGetsValue_thenCorrect() { - Optional opt = Optional.of("baeldung"); + Optional opt = Optional.of("HoneyMoose"); String name = opt.get(); - assertEquals("baeldung", name); + assertEquals("HoneyMoose", name); } @Test(expected = NoSuchElementException.class) @@ -96,13 +96,23 @@ public class OptionalUnitTest { @Test public void givenAnEmptyOptional_thenIsEmptyBehavesAsExpected() { - Optional opt = Optional.of("Baeldung"); + Optional opt = Optional.of("HoneyMoose"); assertTrue(opt.isPresent()); opt = Optional.ofNullable(null); assertFalse(opt.isPresent()); } + // This code only can be run in JDK 11 + @Test + public void givenAnEmptyOptional_thenIsEmptyBehavesAsExpected_JDK11() { + Optional opt = Optional.of("Baeldung"); + assertFalse(opt.isEmpty()); + + opt = Optional.ofNullable(null); + assertTrue(opt.isEmpty()); + } + // Conditional Return With filter() @Test public void whenOptionalFilterWorks_thenCorrect() { @@ -157,11 +167,11 @@ public class OptionalUnitTest { @Test public void givenOptional_whenMapWorks_thenCorrect2() { - String name = "baeldung"; + String name = "HoneyMoose"; Optional nameOptional = Optional.of(name); int len = nameOptional.map(String::length).orElse(0); - assertEquals(8, len); + assertEquals(10, len); } @Test @@ -214,7 +224,6 @@ public class OptionalUnitTest { String nullName = null; String name = Optional.ofNullable(nullName).orElseGet(() -> "john"); assertEquals("john", name); - } @Test @@ -259,14 +268,5 @@ public class OptionalUnitTest { return "Default Value"; } -// Uncomment code when code base is compatible with Java 11 -// @Test -// public void givenAnEmptyOptional_thenIsEmptyBehavesAsExpected() { -// Optional opt = Optional.of("Baeldung"); -// assertFalse(opt.isEmpty()); -// -// opt = Optional.ofNullable(null); -// assertTrue(opt.isEmpty()); -// } } \ No newline at end of file