public static void main(String[] args) {
String[] names = new String[]{"zhang", "wang", "li", "zhao", "wu"};
Integer integer = (Integer) Optional.ofNullable(null).orElse(getRandomName(200));// 执行该句时会打印"Generating a name..."
System.out.println(integer);
Integer integer1 = Optional.ofNullable(2).orElseGet(() -> getRandomName(4));
System.out.println(integer1);
}
public static Integer getRandomName(Integer names) {
System.out.println("Generating a name..."+names);
return names;
}
Optional 值为空
OrElse 里的方法必走 返回值为方法返回
orElseGet 只有为空的时候才走 返回值为方法返回
Optional 值不为空
OrElse 里的方法也走 返回值为正常值(Optional 里的对象)
orElseGet 不走方法 返回值为正常值