只有当它不为空时,是否有执行某些操作的快捷方式?

Car*_*cas 12 java

我发现自己经常写这个陈述

MyObject myObject = something.getThatObject();
if( myObject !=null &&
    myObject .someBooleanFunction()){

}
Run Code Online (Sandbox Code Playgroud)

为了防止空指针异常.在Java中有这样的捷径吗?我在想myObject..someBooleanFunction()什么?

Joo*_*gen 6

在 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)

如果这种风格对读者来说是新的,那么应该记住,全函数式编程更好一些。