走潮流,用JDK 8
String str = "A";String orElse = Optional.ofNullable(str).orElse(getDefault()); // 先执行getDefault return B 后 return Aprint.....BAString orElseGet = Optional.ofNullable(str).orElseGet(() -> getDefault()); // getDefault不会执行print....Apublic static String getDefault () {return "B";}
当ofNullable有值时,orElse会执行getDefault(),而orElseGet不会执行。 ```java String strNull = null;
String orElse = Optional.ofNullable(strNull).orElse(getDefault());
print…. B
String orElseGet = Optional.ofNullable(str).orElseGet(() -> getDefault());
print…. B
public static String getDefault () {return "B";}
```
- 当ofNullable为空时,orElse和orElseGet都会执行getDefault();
