有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java8返回一个空的可选

我有一个方法,我想返回一个空的可选值,如果找不到任何内容

@Override
public Optional<Menu> findBySymbol (String symbol) {
    Optional<Menu> menu = 
                    StreamSupport
                    .stream(cachedMenus.get(ALL_CURRENCIES_KEY).spliterator(), true)
                    .findFirst();

    return menu.orElse(Optional.empty());

}

但我得到了一个编译错误:Type mismatch: cannot convert from Optional<Object> to Menu


共 (1) 个答案

  1. # 1 楼答案

    返回:

    return StreamSupport.stream(cachedMenus.get(ALL_CURRENCIES_KEY).spliterator(), true)
                        .findFirst();
    

    如果源为空,这将返回用可选或空可选包装的第一个元素