我发现自己经常写这个陈述
MyObject myObject = something.getThatObject();
if( myObject !=null &&
myObject .someBooleanFunction()){
}
Run Code Online (Sandbox Code Playgroud)
为了防止空指针异常.在Java中有这样的捷径吗?我在想myObject..someBooleanFunction()什么?
在 Java 8 中:
static <T> boolean notNull(Supplier<T> getter, Predicate<T> tester) {
T x = getter.get();
return x != null && tester.test(x);
}
if (notNull(something::getThatObject, MyObject::someBooleanFunction)) {
...
}
Run Code Online (Sandbox Code Playgroud)
如果这种风格对读者来说是新的,那么应该记住,全函数式编程更好一些。