diff --git a/core-java-modules/core-java-11-2/README.md b/core-java-modules/core-java-11-2/README.md index 2b0eda8d91..b6d724ea04 100644 --- a/core-java-modules/core-java-11-2/README.md +++ b/core-java-modules/core-java-11-2/README.md @@ -1,8 +1,8 @@ -## Core Java 11 +## Java 11 核心(Core Java 11) -This module contains articles about Java 11 core features +本模块中包含有关 Java 11 核心新增功能的的一些文章 -### Relevant articles +### 相关文章 - [Guide to Java 8 Optional](https://www.baeldung.com/java-optional) - [Guide to Java Reflection](http://www.baeldung.com/java-reflection) - [Guide to Java 8’s Collectors](https://www.baeldung.com/java-8-collectors) 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 ac955a374a..ac888db380 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 @@ -9,10 +9,15 @@ import java.util.List; import java.util.NoSuchElementException; import java.util.Optional; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.*; +/** + * Test for Java Optional + * + *

https://www.ossez.com/t/java-8-optional/13964

+ * + * @author YuCheng + */ public class OptionalUnitTest { private static final Logger LOG = LoggerFactory.getLogger(OptionalUnitTest.class); @@ -26,7 +31,7 @@ public class OptionalUnitTest { @Test public void givenNonNull_whenCreatesNonNullable_thenCorrect() { - String name = "baeldung"; + String name = "HoneyMoose"; Optional opt = Optional.of(name); assertTrue(opt.isPresent()); } @@ -39,14 +44,14 @@ public class OptionalUnitTest { @Test public void givenNonNull_whenCreatesOptional_thenCorrect() { - String name = "baeldung"; + String name = "HoneyMoose"; Optional opt = Optional.of(name); assertTrue(opt.isPresent()); } @Test public void givenNonNull_whenCreatesNullable_thenCorrect() { - String name = "baeldung"; + String name = "HoneyMoose"; Optional opt = Optional.ofNullable(name); assertTrue(opt.isPresent()); } @@ -61,7 +66,7 @@ public class OptionalUnitTest { @Test public void givenOptional_whenIsPresentWorks_thenCorrect() { - Optional opt = Optional.of("Baeldung"); + Optional opt = Optional.of("HoneyMoose"); assertTrue(opt.isPresent()); opt = Optional.ofNullable(null); @@ -88,12 +93,12 @@ public class OptionalUnitTest { Optional opt = Optional.ofNullable(null); String name = opt.get(); } - + @Test public void givenAnEmptyOptional_thenIsEmptyBehavesAsExpected() { Optional opt = Optional.of("Baeldung"); assertTrue(opt.isPresent()); - + opt = Optional.ofNullable(null); assertFalse(opt.isPresent()); } @@ -103,11 +108,9 @@ public class OptionalUnitTest { public void whenOptionalFilterWorks_thenCorrect() { Integer year = 2016; Optional yearOptional = Optional.of(year); - boolean is2016 = yearOptional.filter(y -> y == 2016) - .isPresent(); + boolean is2016 = yearOptional.filter(y -> y == 2016).isPresent(); assertTrue(is2016); - boolean is2017 = yearOptional.filter(y -> y == 2017) - .isPresent(); + boolean is2017 = yearOptional.filter(y -> y == 2017).isPresent(); assertFalse(is2017); } @@ -139,11 +142,7 @@ public class OptionalUnitTest { } public boolean priceIsInRange2(Modem modem2) { - return Optional.ofNullable(modem2) - .map(Modem::getPrice) - .filter(p -> p >= 10) - .filter(p -> p <= 15) - .isPresent(); + return Optional.ofNullable(modem2).map(Modem::getPrice).filter(p -> p >= 10).filter(p -> p <= 15).isPresent(); } // Transforming Value With map() @@ -152,8 +151,7 @@ public class OptionalUnitTest { List companyNames = Arrays.asList("paypal", "oracle", "", "microsoft", "", "apple"); Optional> listOptional = Optional.of(companyNames); - int size = listOptional.map(List::size) - .orElse(0); + int size = listOptional.map(List::size).orElse(0); assertEquals(6, size); } @@ -162,8 +160,7 @@ public class OptionalUnitTest { String name = "baeldung"; Optional nameOptional = Optional.of(name); - int len = nameOptional.map(String::length) - .orElse(0); + int len = nameOptional.map(String::length).orElse(0); assertEquals(8, len); } @@ -171,13 +168,10 @@ public class OptionalUnitTest { public void givenOptional_whenMapWorksWithFilter_thenCorrect() { String password = " password "; Optional passOpt = Optional.of(password); - boolean correctPassword = passOpt.filter(pass -> pass.equals("password")) - .isPresent(); + boolean correctPassword = passOpt.filter(pass -> pass.equals("password")).isPresent(); assertFalse(correctPassword); - correctPassword = passOpt.map(String::trim) - .filter(pass -> pass.equals("password")) - .isPresent(); + correctPassword = passOpt.map(String::trim).filter(pass -> pass.equals("password")).isPresent(); assertTrue(correctPassword); } @@ -192,8 +186,7 @@ public class OptionalUnitTest { String name1 = nameOptional.orElseThrow(IllegalArgumentException::new); assertEquals("john", name1); - String name = personOptional.flatMap(Person::getName) - .orElseThrow(IllegalArgumentException::new); + String name = personOptional.flatMap(Person::getName).orElseThrow(IllegalArgumentException::new); assertEquals("john", name); } @@ -203,9 +196,7 @@ public class OptionalUnitTest { person.setPassword("password"); Optional personOptional = Optional.of(person); - String password = personOptional.flatMap(Person::getPassword) - .filter(cleanPass -> cleanPass.equals("password")) - .orElseThrow(IllegalArgumentException::new); + String password = personOptional.flatMap(Person::getPassword).filter(cleanPass -> cleanPass.equals("password")).orElseThrow(IllegalArgumentException::new); assertEquals("password", password); } @@ -213,8 +204,7 @@ public class OptionalUnitTest { @Test public void whenOrElseWorks_thenCorrect() { String nullName = null; - String name = Optional.ofNullable(nullName) - .orElse("john"); + String name = Optional.ofNullable(nullName).orElse("john"); assertEquals("john", name); } @@ -222,8 +212,7 @@ public class OptionalUnitTest { @Test public void whenOrElseGetWorks_thenCorrect() { String nullName = null; - String name = Optional.ofNullable(nullName) - .orElseGet(() -> "john"); + String name = Optional.ofNullable(nullName).orElseGet(() -> "john"); assertEquals("john", name); } @@ -232,13 +221,11 @@ public class OptionalUnitTest { public void whenOrElseGetAndOrElseOverlap_thenCorrect() { String text = null; LOG.debug("Using orElseGet:"); - String defaultText = Optional.ofNullable(text) - .orElseGet(this::getMyDefault); + String defaultText = Optional.ofNullable(text).orElseGet(this::getMyDefault); assertEquals("Default Value", defaultText); LOG.debug("Using orElse:"); - defaultText = Optional.ofNullable(text) - .orElse(getMyDefault()); + defaultText = Optional.ofNullable(text).orElse(getMyDefault()); assertEquals("Default Value", defaultText); } @@ -246,13 +233,11 @@ public class OptionalUnitTest { public void whenOrElseGetAndOrElseDiffer_thenCorrect() { String text = "Text present"; LOG.debug("Using orElseGet:"); - String defaultText = Optional.ofNullable(text) - .orElseGet(this::getMyDefault); + String defaultText = Optional.ofNullable(text).orElseGet(this::getMyDefault); assertEquals("Text present", defaultText); LOG.debug("Using orElse:"); - defaultText = Optional.ofNullable(text) - .orElse(getMyDefault()); + defaultText = Optional.ofNullable(text).orElse(getMyDefault()); assertEquals("Text present", defaultText); } @@ -260,8 +245,7 @@ public class OptionalUnitTest { @Test(expected = IllegalArgumentException.class) public void whenOrElseThrowWorks_thenCorrect() { String nullName = null; - String name = Optional.ofNullable(nullName) - .orElseThrow(IllegalArgumentException::new); + String name = Optional.ofNullable(nullName).orElseThrow(IllegalArgumentException::new); } @Test(expected = NoSuchElementException.class) @@ -274,7 +258,7 @@ public class OptionalUnitTest { LOG.debug("Getting default value..."); return "Default Value"; } - + // Uncomment code when code base is compatible with Java 11 // @Test // public void givenAnEmptyOptional_thenIsEmptyBehavesAsExpected() {