使用 Optional for By/BySelector 进行空检查

Null check using Optional for By/BySelector

我想重写我的空检查代码,并改用 Optional。

public BySelector select(BySelector bySelector, Boolean value) {
  return (bySelector == null) ? By.checkable(value) : bySelector.checkable(value);
}

以上是我的原代码。我不知道如何替换为可选。我尝试了以下但它不起作用。请指教。谢谢。

public BySelector select(BySelector bySelector, Boolean value) {
  return Optional.ofNullable(bySelector.checkable(value).orElse(By.checkable(value);
}

在你的情况下不需要使用 Optional,因为它不如你的简单空检查那么清楚,但我会这样做:

Optional.ofNullable(bySelector)
        .map(x -> By.checkable(value))
        .orElse(BySelector.checkable(value));

也许您希望您的方法 return 是可选的,这更有意义。