Java 如何返回对象(如果存在),否则返回可选的空
我有一个通过rest调用检索的对象。我需要在那个物体里有一个物体 最终可选AresOnse=Optional.ofNullablerestTemplate.getForObjecturi,A.class 在类A中,它内部有一个类型为B的对象。无论出于何种原因,此对象都可以为null 我正试图尽可能安全地查询这个问题,这样就不会出现空指针异常。 我尝试过这样做:Java 如何返回对象(如果存在),否则返回可选的空,java,spring,optional,Java,Spring,Optional,我有一个通过rest调用检索的对象。我需要在那个物体里有一个物体 最终可选AresOnse=Optional.ofNullablerestTemplate.getForObjecturi,A.class 在类A中,它内部有一个类型为B的对象。无论出于何种原因,此对象都可以为null 我正试图尽可能安全地查询这个问题,这样就不会出现空指针异常。 我尝试过这样做: final Optional<B> bType = aResponse.map(A::getB)
final Optional<B> bType = aResponse.map(A::getB)
.orElseGet(() -> {
return Optional.empty();
});
但它似乎不起作用。它给出了以下消息:Required B,但empty被推断为可选的no实例。您不必调用OrelGet,只要:
如果调用该映射的实例为空,则该映射已返回可选的
地图的Javadoc:
返回:一个可选项,描述将映射函数应用于此可选项的值的结果(如果存在值),否则为空可选项
你不必打电话给orElseGet,只要:
如果调用该映射的实例为空,则该映射已返回可选的
地图的Javadoc:
返回:一个可选项,描述将映射函数应用于此可选项的值的结果(如果存在值),否则为空可选项
final Optional<B> bType = aResponse.map(A::getB);