如何解决这是什么意思?爪哇
something().orElseGet(() -> (a,b,c) -> {})
// ^----this part------^
其中(a,c)
是具有a
,b
和c
参数的方法。例如:Method(a,c)
返回了一些内容。
我的问题是在实践中,此功能接口的作用是什么,对我来说很混乱。
解决方法
它返回一个Supplier
,然后提供三个参数方法的实现(a,b,c) -> {}
通常,Java中的所有方法参数都会在调用方法后立即进行评估。
这意味着,在orElseGet((a,c) -> {})
的假设情况下,无论是否需要,都会始终创建该方法。但是由于只有在没有其他值时才需要它,因此拥有中间供应商意味着仅在实际需要时才创建该方法。
由于在不存在任何价值的情况下使用的价值可能会任意创建,因此供应商可能节省大量时间。在您的情况下,差异不会太大(创建供应商或创建lambda的成本可能大致相等)。但是在其他情况下,获得该值可能涉及数据库查找,字符串串联等,在这种情况下,仅在实际需要时才执行这些操作会带来巨大的好处。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。