首页 > 解决方案 > 为什么 FindById 返回 Optional?

问题描述

我目前在我的存储库接口中重写findById以返回一个普通对象,因为我不喜欢我必须做的不必要的代码:.isPresent().get()

ApplicationType findById(long applicationTypeId);

我只是检查if(applicationType != null)

在这里实施 Optional 的任何原因?

标签: javaoptional

解决方案


自 JDK 8 起,可选在 JDK 中实现。

它谦虚地希望避免在代码中使用 null 检查(就像您实际上所做的那样)

Optionalreturn 这里意味着我们可以有一个ApplicationType值或null.

有 时,Optional您可以使用 来检查值isPresent()。的值Optional可以用get()

Optional 很有趣,特别是在使用 optinal 本身的函数直接执行操作时,仅使用 this :

Optional<ApplicationType> applicationType = repo.findById(1L);
applicationType.ifPresent(value -> doSomething(value));
applicationType.orElse(defaultApplicationType);

这里是关于 Optionals的完整指南


推荐阅读