当前位置: 首页 > 知识库问答 >
问题:

如何做Java可选的,如果现在做某事或抛出?

孔厉刚
2023-03-14

我想做的是,如果客户存在,更新客户,但如果没有客户,则抛出异常。但我找不到正确的流函数来实现这一点。我怎样才能做到这一点?

public Customer update(Customer customer) throws Exception {
        Optional<Customer> customerToUpdate = customerRepository.findById(customer.getId());
        customerToUpdate.ifPresentOrElse(value -> return customerRepository.save(customer),
        throw new Exception("customer not found"));
    }

我无法返回save函数的值,因为它表示它是void方法,不需要返回值。

共有1个答案

钱运浩
2023-03-14

正如Guillaume F.在评论中已经说过的,您可以在此处使用orElseThrow

java prettyprint-override">Customer customer = customerRepository.findById(customer.getId())
    .orElseThrow(() -> new Exception("customer not found"));
return customerRepository.save(customer);

顺便说一句,避免抛出异常,因为该异常太广泛了。使用更具体的类型,如NotFoundException

 类似资料:
  • 问题内容: 可以说我想做一个循环或每秒打印出来的内容,例如“ Mario”。我怎样才能做到这一点?似乎找不到任何可以在任何地方教授此内容的优秀教程= P 问题答案: 您可以使用java.util.Timer。 任务是您要执行的方法,之后是直到第一次执行的时间,间隔是上述任务的两次执行之间的时间。

  • 我试图让机器人等待用户的反应,但我不知道如何设置它。我已经试过了,我也在第一部分中加入了,但是当它对消息作出反应时,使用了1️⃣ 机器人回答。

  • 问题内容: 我需要几行Java代码,它们在x的时间内随机运行一个命令。 伪代码: 问题答案: 如果按 时间表示 您 正在执行代码 的 时间 ,那么您想要在代码块内 执行 某些操作,而该操作在整个代码块执行的时间的10%内执行,则可以执行以下操作: 当然代表10%,但您可以调整它。像每个PRNG算法一样,这按平均使用量起作用。除非被称为合理的时间,否则您将不会接近10%。

  • 本文向大家介绍如果做一个韩剧或者日剧或者美剧的APP,你会如何做呢?相关面试题,主要包含被问及如果做一个韩剧或者日剧或者美剧的APP,你会如何做呢?时的应答技巧和注意事项,需要的朋友参考一下 我会做一个“看美剧,学英语”的APP。 用户在这里可以看到各类美剧,并且可以设置字幕展示方式:只展示英文,中英文都要,不要字幕。并且,可以查看到该美剧里面出现的俗语啊等知识点,更地道地学英语。此外,还可以在社

  • 查看个人信息 轻触参加派对之成员的虚拟形象会显示个人信息画面。若尚未与对方成为朋友,会显示(加为朋友请求),通过轻触图标或虚拟形象后所显示的个人信息画面亦可发送加为朋友请求。 收到尚未成为朋友的成员所寄来的加为朋友请求时,(加为朋友请求)会发光。 进行文字聊天 轻触(聊天&活动)可和参加派对的成员进行文字聊天。此外,成员参加/离开派对时或开始游玩游戏的活动也会显示在此画面。追加聊天信息或其他信息后

  • 谢谢你宝贵的时间。