Java8 的时候加入了 Optional 类。用于避免空指针的出现,也无需在写大量的if(obj!=null)这样的判断了,前提是你得将数据用Optional装着,它就是一个包裹着对象的容器。
/** * 判 null 处理 * Optional.ofNullable() 值可能为空的情况下 */ public static void nullOptional() { // 为了判断第一个值是否为空的情况下 String strOne = "this is one"; String strTwo = "this is two"; String strThree = null; String str1 = Optional.ofNullable(strOne).orElse(strTwo); String str2 = Optional.ofNullable(strThree).orElse(strTwo); System.out.println("输出 " + str1); // 输出 this is one System.out.println("输出 " + str2); // 输出 this is two }
/** * 求取集合的size,不需要判断集合是不是为null */ public static void listNullOptional() { List<String> list = Lists.newArrayList(); list.add("tom"); list.add("tom1"); int listCount = Optional.ofNullable(list).orElse(Collections.emptyList()).size(); System.out.println("get list not empty: " + listCount); // 2 List<String> listNull = null; int listNullCount = Optional.ofNullable(listNull).orElse(Collections.emptyList()).size(); System.out.println("get list is empty: " + listNullCount); // 0 System.out.println("get list size: " + Collections.emptyList().size()); // 0 }