我对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/