我正在尝试迭代对象列表
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");
});
出现以下错误:
Optional类型的方法orElseThrow(Supplier)不适用于参数(()-> {})
我在这里出什么事了吗?
如果QueryEntities类与belw相同:
public class QueryEntities {
List<QueryEntity> entitiesList;
}
如何访问每个QueryEntity并检索其字段并打印。
答案 0 :(得分:4)
Optional#orElseThrow
接受
Supplier<? extends X> exceptionSupplier
所以您必须提供一个:
entities.orElseThrow(() -> {
logger.error("Unable to parse YAL ,Correct YML and retry");
return new NoExtractorDefinedException("Unable to parse YAL ,Correct YML and retry");
});
答案 1 :(得分:1)
在这种情况下,当我们为供应商传递lambda表达式时,
示例: entity.orElseThrow(()-> new NoExtractorDefinedException(“无法解析YAL,更正YML并重试”));
示例:
entities.orElseThrow(()-> { logger.error(“无法解析YAL,更正YML并重试”);
return new NoExtractorDefinedException("Unable to parse YAL ,Correct YML and retry");
});