走潮流,用JDK 8
String str = "A";
String orElse = Optional.ofNullable(str).orElse(getDefault()); // 先执行getDefault return B 后 return A
print.....
B
A
String orElseGet = Optional.ofNullable(str).orElseGet(() -> getDefault()); // getDefault不会执行
print....
A
public 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();