正确使用Optional.ifPresent()

正确使用Optional.ifPresent(),第1张

正确使用Optional.ifPresent()

Optional<User>.ifPresent()
需要
Consumer<? superUser>
作为参数。您正在向其传递类型为void的表达式。因此,它不会编译。

使用者应被实现为lambda表达式:

Optional<User> user = ...user.ifPresent(theUser -> doSomethingWithUser(theUser));

甚至更简单,使用方法参考:

Optional<User> user = ...user.ifPresent(this::doSomethingWithUser);

这基本上与

Optional<User> user = ...user.ifPresent(new Consumer<User>() {    @Override    public void accept(User theUser) {        doSomethingWithUser(theUser);    }});

想法是

doSomethingWithUser()
仅当用户在场时才执行方法调用。您的代码直接执行方法调用,并尝试将其无效结果传递给
ifPresent()



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5565141.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-14
下一篇2022-12-14

发表评论

登录后才能评论

评论列表(0条)

    保存