1.jpg

走潮流,用JDK 8


  1. String str = "A";
  2. String orElse = Optional.ofNullable(str).orElse(getDefault()); // 先执行getDefault return B 后 return A
  3. print.....
  4. B
  5. A
  6. String orElseGet = Optional.ofNullable(str).orElseGet(() -> getDefault()); // getDefault不会执行
  7. print....
  8. A
  9. public static String getDefault () {
  10. return "B";
  11. }
  • ofNullable有值时,orElse会执行getDefault(),而orElseGet不会执行。 ```java String strNull = null;

    String orElse = Optional.ofNullable(strNull).orElse(getDefault());

print…. B

  1. String orElseGet = Optional.ofNullable(str).orElseGet(() -> getDefault());

print…. B

  1. public static String getDefault () {
  2. return "B";
  3. }

```

  • ofNullable为空时,orElse和orElseGet都会执行getDefault()