Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何返回对象(如果存在),否则返回可选的空_Java_Spring_Optional - Fatal编程技术网

Java 如何返回对象(如果存在),否则返回可选的空

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)

我有一个通过rest调用检索的对象。我需要在那个物体里有一个物体

最终可选AresOnse=Optional.ofNullablerestTemplate.getForObjecturi,A.class

在类A中,它内部有一个类型为B的对象。无论出于何种原因,此对象都可以为null

我正试图尽可能安全地查询这个问题,这样就不会出现空指针异常。 我尝试过这样做:

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