如何检查对象和嵌套字段是否为空

use*_*391 2 java variables field object

我有一个对象,我想检查此对象或嵌套字段是否为空.我想打印这个neted字段,但我应该检查某个级别是否有null,否则我将获得空指针异常.

我知道我可以这样做:

if( object != null && object.A != null && object.A.B != null && object.A.B.C != null && object.A.B.C.D != null) { doSomething( object.A.B.C.D);}
Run Code Online (Sandbox Code Playgroud)

但它太久了.你知道更好的检查方法吗?

use*_*391 8

可选是Java 8中的一种好方法.

String value = foo.getBar().getBaz().toString();
Run Code Online (Sandbox Code Playgroud)

可选的将是:

String value = Optional.ofNullable(foo)
                       .map(Foo::getBar)
                       .map(Bar::getBaz)
                       .map(Baz::toString)
                       .orElse("EmptyString");
Run Code Online (Sandbox Code Playgroud)


小智 1

您可以使用返回所有子对象的方法在所有对象上实现一个接口,并创建一个递归调用自身的方法来验证是否设置了所有对象。