我当前在我的存储库接口中重写findById
以返回普通对象,因为我不喜欢我必须要做的不必要的代码:.isPresent()
和.get()
ApplicationType findById(long applicationTypeId);
我只是检查if(applicationType != null)
为什么在这里实现Optional的任何原因?
Optional自JDK 8起在JDK中实现。
谦虚地希望避免在代码中使用空值检查(就像您实际上所做的那样]
这里的可选返回值表示我们可以具有ApplicationType
值或null
。
具有“可选”时,可以通过选中isPresent()
来设置值。该值可以从get()
可选是特别有趣的,特别是当在功能上直接使用最佳功能本身执行动作时,仅此而已:
Optional<ApplicationType> applicationType = repo.findById(1);
applicationType.ifPresent(value -> doSomething(value));
applicationType.orElse(defaultApplicationType);
在可选项中有完整的guide