如何使用 Optional<T> 等使 return 类型可为空?

How to make return type nullable using Optional<T> etc?

我有以下方法 returns DemoDTO 如果找不到,return 异常。

public DemoDTO findShallowByUuid(UUID uuid) {
    return demoRepository.findShallowByUuid(uuid)
            .orElseThrow(() -> new EntityNotFoundException("Not found"));
}

但是,我想让方法 return 可以为 null DemoDTO 而不是抛出错误。为此,我将其类型和相关的 return 类型转换为 Optional<DemoDTO>Optional<T>,但它导致了一些与相关 DTO 有关的问题。在我将构造函数参数更新为 Optional<T> 后,使用此 DTO 的应用程序的另一部分抱怨。

我不确定转换为 Optional<T> 是不是一个好主意。如果这是个好主意,我是否应该向 DemoDTO 添加另一个构造函数?我不确定这是否是一个好的解决方案,因为它还需要对 属性 类型进行一些更改。有什么想法吗?

为了将我的评论变成答案,根据您的要求,这将是最优雅的方式:

public DemoDTO findShallowByUuid(UUID uuid) {
    return demoRepository.findShallowByUuid(uuid).orElse(null);
}

但要确保调用代码正确处理 null 以避免 NullPointerExceptions.