jac*_*cob 3 java intellij-idea java-8
我正在尝试尽可能多地使用Optional来进行正常的空值检查; 我的IDE(IntelliJ)遇到了一个建议:
Can be replaced by a singular expression in functional style.
Run Code Online (Sandbox Code Playgroud)
这是有问题的代码,有问题的行:
Entry entry = maybeBytes.isPresent() ? Entry.deserialize(maybeBytes.get()) : new Entry();
Run Code Online (Sandbox Code Playgroud)
我在这里看了一下,但找不到用法或至少看到一个适合我的情况.我对lambda功能很新.
怎么样:
Entry entry = maybeBytes.map(Entry::deserialize).orElseGet(Entry::new);
Run Code Online (Sandbox Code Playgroud)
如果maybeBytes
包含一个值,它将被传递给你提供给的函数map()
,你将得到一个Optional<Entry>
结果(如果maybeBytes
是空的,你将得到一个空的Optional<Entry>
).orElseGet()
会给你Optional<Entry>
if的非空的内容,否则,它会给你评估你传递给它的函数的结果(在这种情况下,是构造函数Entry
).
归档时间: |
|
查看次数: |
1066 次 |
最近记录: |