java 8 新特性随记

1、遍历list
java 7
for(Object object : list)
or 其他
java 8
list.foreach(object -> {})
or
使用 stream API 下面这种方式是遍历过滤。
finalCouponUserList.stream().filter((CouponUser cu) -> {

              return true or false  // 此处可以使用谓语判定 ;
            }).collect(Collectors.toList());

2、optional
Optional.ofNullable() ; // 可以直接传入一个空值,看源码可以看到调用的是empty();
optional.of 只能传入非空值 否着空指针;
ispreasent() 与!=null 类似 但是不会抛出空指针;
在对字符串进行空的判断的时候发现一个有意思的情况:
System.err.printf("---------%s-----", mIsEmpty(""));
System.err.printf("---------%s-----", mIsEmpty("null"));
System.err.printf("---------%s-----", mIsEmpty(null));
System.err.printf("---------%s-----", mIsEmpty("123456"));
public static Boolean mIsEmpty(String s) {
Optional optional = Optional.ofNullable(s); //optional.isPresent() 与 ! =null 差不多
return !optional.isPresent();

}

打印出来的
---------false--------------false--------------true--------------false-----;也就是说只有为null 的时候才符合 所以 不能直接用ispresent() 判断字符串是否为空;

你可能感兴趣的:(java 8 新特性随记)