java.util.Objects.isNull 与 object== null有何区别?为什么会引入java.util.Objects.isNull方法?
1. 直接对比源代码
public static boolean isNull(Object obj) {
return obj == null;
}
从源码上看,两者是一致的。
2. 存在的原因
既然一样,为什么需要isNull方法了?
我们可以发现java docs上注释了:
之所以有isNull方法是因为 @apiNote This method exists to be used as a {@link java.util.function.Predicate}, {@code filter(Objects::isNull)}
Java8中引入了lambda,因此出现很多这样filter(Objects::isNull)这样的写法,显然比filter(x -> x == null). 方法更直观一些。
3. 示例用法
代码非常简单,直接使用 Objects.isNull(xxx) 或者Objects::nonNull
package com.yq.helloworld;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* @author EricYang
* @version 2018/8/18 23:22
*/
public class Objects