首页 > 解决方案 > 对 By/BySelector 使用 Optional 进行空检查

问题描述

我想重新编写我的空检查代码,并改用 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);
}

标签: javaandroid-uiautomator

解决方案


在您的情况下不需要使用 Optional ,因为它比简单的空检查不太清楚,但这就是我的做法:

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

也许您希望您的方法返回一个可选的,这更有意义。


推荐阅读