optional
package day07.java8;
import com.google.common.collect.Lists;
import org.apache.commons.lang3.RandomStringUtils;
import java.util.List;
import java.util.Optional;
import java.util.function.Supplier;
/*
optional 优雅的处理null
*/
public class Demo03 {
public static void main(String[] args) {
Integer abc = getString("abc").orElse(0);
System.out.println("string1 = " + abc);
List<String> list = Lists.newArrayList("aa","abc","dgf","agvbd");
long count = list.stream().filter(x -> x.length() > 2).count();
// list.stream().filter(x->x.length()>1).forEach(System.out::println);
Optional<String> optional = list.stream()
.filter(x -> x.length() > 6)
.findFirst();
if(optional.isPresent()){
System.out.println(optional.get());
}
String string=optional.orElse("fuck");//optional 如果没有值,提供默认值
System.out.println(string);
// String s = optional.orElseGet(new Supplier<String>() {
// @Override
// public String get() {
// return "fuck you";
// }
// });
String s =optional.orElseGet(()-> RandomStringUtils.randomAlphanumeric(8));
System.out.println("s = ========================" );
}
public static Optional<Integer> getString(String str){
if(str==null){
return Optional.empty();
}
Integer length = str.length();
return Optional.of(length);
}
}