java - 这里的 Optional<Class> 有什么问题?

标签 java lambda java-8 java-stream

我正在尝试迭代对象列表

Optional<QueryEntities>  entities =  InputYamlProcessor.process(ymlFilename);

entities.orElseThrow( ()->{
               logger.error("Unable to parse YAL ,Correct YML and retry");
               new NoExtractorDefinedException("Unable to parse YAL ,Correct YML and retry");
           });

报错如下:

可选类型中的方法 orElseThrow(Supplier) 不适用于参数 (() -> {})

我在这儿怎么了?

如果 QueryEntities 类如下所示:

public class QueryEntities {

    List<QueryEntity> entitiesList;
   }

如何访问每个 QueryEntity 并检索其字段并打印。

最佳答案

Optional#orElseThrow

拿一个

Supplier<? extends X> exceptionSupplier

(参见 OptionalSupplier )

所以你必须提供一个:

entities.orElseThrow(() -> {
       logger.error("Unable to parse YAL ,Correct YML and retry");
       return new NoExtractorDefinedException("Unable to parse YAL ,Correct YML and retry");
});

关于java - 这里的 Optional<Class> 有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56539202/

相关文章:

java - 在 JTabbedPane 中设置背景图像

scala - 将CompletableFuture(Java 8)转换为Future(Scala)

Python:减少元组的元组

java - 注释 Lambda 表达式的功能接口(interface)

java - 如何比较 java 8 中的两个 java.time.Period?

java - Selenium WebDriver : clicking on elements within an SVG using XPath

使用接口(interface)调用的 Java 方法重载

java - 我如何逐步查看 jetty 的源代码以查看它如何处理典型的 servlet 请求?

python - AWS SAM 本地和 docker-lambda : keep getting Unable to import module 'lambda_function' : No module named 'lambda_function'

c# - EF Core 子元素的列表和属性之间的相交返回 "ArgumentNullException"