为什么FindById返回Optional?

时间:2020-03-11 14:43:40

标签: java optional

我当前在我的存储库接口中重写findById以返回普通对象,因为我不喜欢不必要的代码:.isPresent().get() < / p>

ApplicationType findById(long applicationTypeId);

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

在这里实现“可选”的任何原因?

1 个答案:

答案 0 :(得分:2)

Optional自JDK 8起在JDK中实现。

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

Optional返回此处意味着我们可以有一个ApplicationType值或null

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

来获取get()的值

可选的很有意思,尤其是当直接在optinal本身上执行带有某些功能的动作时:

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

有关可选内容的完整guide