Optional.ofNullable-无法返回无效结果

问题描述 投票:-2回答:1

尝试转换

public WebDriver getDriver(URL remoteUrl) {
    return null == remoteUrl
        ? new ChromeDriver(getCapabilities())
        : new RemoteWebDriver(remoteUrl, getCapabilities());
}

使用Optional

public WebDriver getDriver(URL remoteUrl) {
    return Optional.ofNullable(remoteUrl).ifPresentOrElse(
        u -> new RemoteWebDriver(u, getCapabilities()),
        () -> new ChromeDriver(getCapabilities()));
}

但是得到

无法返回无效结果

虽然?:版本有效。

java optional
1个回答
1
投票

使用.map()。仅当存在remoteUrl时才调用。否则请使用ChromeDriver

提供orElse
public WebDriver getDriver(URL remoteUrl) {
    return Optional.ofNullable(remoteUrl)
      .map(u -> new RemoteWebDriver(u, getCapabilities()))
      .orElse(new ChromeDriver(getCapabilities()));
}
© www.soinside.com 2019 - 2024. All rights reserved.