我对optional.ofnullable
方法感到惊讶。有一天,我写了一个函数,它应该返回一个可选的:
private Optional<Integer> extractFirstValueFrom(InsightsResponse insight) {
return Optional.ofNullable(insight.getValues().get(0).getValue());
}
我错误地认为optional.ofnullable
将阻止参数表达式内部的任何nullPointerExceptions
。
现在我想我知道这是一个非常愚蠢的想法。Java必须首先解析参数才能将其传递给optional.ofnullable
调用。
但我有个问题。有没有一个好的方法来完成我的目标?我想从表达式Insight.GetValues().Get(0).GetValue()
中获取一些整数值或空值。Null可以是每个表达式:Insight.GetValues()
或Insight.GetValues().Get(0)
。
我知道我可以把它放在try/catch块中,但我想知道是否有更优雅的解决方案。
如果您不知道什么东西可以是null
,或者希望检查所有东西是否有null
,唯一的方法是将调用链接到optional.map
:
如果存在值,则对其应用提供的映射函数,如果结果为非空,则返回描述结果的可选值。否则返回一个空的可选。
因此,如果映射器返回null
,则将返回一个空的optional
,这允许链接调用。
Optional.ofNullable(insight)
.map(i -> i.getValues())
.map(values -> values.get(0))
.map(v -> v.getValue())
.orElse(0);
对orelse(0)
的最后一次调用允许在任何映射器返回null
的情况下返回默认值0。
问题内容: 我对方法感到惊讶。有一天,我写了一个函数,该函数应该返回Optional: 我错误地认为这会阻止参数表达的任何内部。 现在我想我知道这是非常愚蠢的想法。Java必须先解析参数才能将其传递给调用。 但是我有一个问题。有没有一种很好的方法可以实现我的目标?我想从表达式中获取一些Integer值或null。Null可以是每个表达式之一:或。 我知道我可以将其放在try / catch块中,但
} ``
本文向大家介绍python 链接和操作 memcache方法,包括了python 链接和操作 memcache方法的使用技巧和注意事项,需要的朋友参考一下 1,打开memcached服务 2,使用python-memcached模块,进行简单的链接和存取数据 3,其它方法请参考: 以上这篇python 链接和操作 memcache方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家
方法链是Javascript中常用的编程模式,Giojs也支持使用方法链对参数进行配置。使用方法链,参数的设置会更加清晰可读。 以下的例子展示了如何使用Giojs方法链。(你也可以点击在线演示,然后查看例子的源码来详细了解方法链是如何应用在实际场景中的) 不使用方法链的API调用: controller.setSurfaceColor( "#00FF00" ); controller.setSel
使用依赖注入框架(比如HK2)管理的服务时,使用方法链接是否可以接受? 我不确定是否允许它“缓存”实例,即使它只在注入范围内。 创建比萨饼的示例服务: 在这里,服务被注入到JAX-RS资源中:
问题内容: 我正在使用PHP 5,并且听说过面向对象方法中的一项新功能,即“方法链接”。究竟是什么?如何实施? 问题答案: 实际上,它相当简单,您有一系列的mutator方法,它们都返回原始(或其他)对象,这样您就可以继续在返回的对象上调用方法。 输出“ ab” 在线尝试!