我对Optional的用法感到好奇。

使用以下代码段,

public List<Some> read(
    @QueryParam("first_result") @Min(0)
    final Integer firstResult,
    @QueryParam("max_results") @Min(0)
    final Integer maxResults) {

    // ...

    if (firstResult != null) {
        query.setFirstResult(firstResult);
    }

    // ...
}


当我这样更改代码时,

ofNullable(firstResult).ifPresent(v -> query.setFirstResult(v));



问题1:ofNullable是否明显创建了冗余对象?
问题2:是否值得避免样板代码?
问题3:这个问题是关于过早的优化吗?

最佳答案


这是一个见解的问题。我个人使用if块查找代码更易读,而不是更冗长
是。创建短期Optional对象的成本可以忽略不计,尤其是与执行JPA查询相比。因此,如果您发现基于可选的代码更具可读性和优雅性,则不必担心性能。

关于java - 使用Optional#ofNullable可能创建冗余对象吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33247568/

10-10 08:54