我有一个可选对象:
Optional<Detail> newestDetail;
我想返回neWestDetail.getId()
或如果neWestDetail
为空返回null
。
我们是否有比遵循更复杂的方法来实现这一点?
return newestDetail.isPresent()?newestDetail.get().getId():null;
使用id字段将该值映射到可选
,如果该值为空,则将其转换为空
值:
return newestDetail.map(Detail::getId).orElse(null);
我们有一个方法,其中我们收到一个
问题内容: 我有一个这样的类结构: 我的目标是调用get方法,然后检查它是否存在。如果存在,则返回该属性;如果不存在,则仅返回null。所以像这样: 当然,这不是正确的Java 8可选语法,但这就是我的“伪代码”。用Java 1行有什么办法实现这一点? 问题答案: 您正在描述的是方法: 如果值不存在,则可让您使用函数在内转换该值,如果不存在该值,则返回一个空值(可选)。 还要注意,您可以从映射函数
我想做这样的东西: 这将不起作用,因为ifPresent将使用者函数接口作为参数,它具有void accept(t)。它不能返回任何值。还有别的办法吗?
以下模式在可选对象中包含非空字段(整个对象允许为空)。它定义了一个父对象的列表,这些父对象具有可选字段“孩子”——一些父对象允许具有空“孩子”。 以下GraphQL查询返回预期的父对象列表(其中一些具有null子值)。但它也返回附加到结果的错误。这是GraphQL(孩子是可选的)中的错误吗?还是预期行为?
我试图模拟一个对象,该对象返回一个带有Mockito的Java可选对象: 当被调用,它返回。 我希望方法返回 返回的任何原因? 方法如下: 以下是Junit:
问题内容: 我正在尝试做这样的事情: 这将不起作用,因为ifPresent将消费者功能接口作为参数,其具有无效的accept(T t)。它不能返回任何值。还有其他方法吗? 问题答案: 实际上,您正在搜索的是:Optional.map。您的代码将如下所示: 如果可以的话,我宁愿忽略通过。最后,您在这里不会获得任何收益。一个稍微不同的变体: 如果由于另一个调用而已经有了-object ,出于单一原因,