为什么使用方法引用(
::
)时,如果将对象实例设为null,则不会抛出NullPointerException
?这个问题与IT技术有关。 public class MethodReferenceTest {
public static void main(String...strings){
PredicateSample predicateSample = new PredicateSample();
Predicate<String> predicate = predicateSample::isNotEmpty;
// NullpointerException ???
predicateSample = null;
Arrays.asList("a","b","c",null)
.stream()
.filter(predicate)
.forEach(System.out::println);
}
static class PredicateSample{
public boolean isNotEmpty(String s){
return ((s!=null) && (!s.isEmpty()));
}
}
}
在构建谓词之后,似乎没有调用predicateSample
?
predicateSample
设置为null
。你认为为什么会出现 NPE? - FlownPredicateSample
对象。然后您将变量设置为null
,这是一个独立的操作。 - Flown