当前位置: 首页 > 知识库问答 >
问题:

如何用流重构它?[副本]

华甫
2023-03-14

如何用java流重构它?

List<SessionCreateParams.LineItem> elements = new ArrayList<>();
SessionCreateParams.LineItem lineItem;

for (Product product : experience.getProducts()) {
    String taxRate = getTaxRate(product.getPriceId());
    lineItem = stripeProxy.createLineItem(1L, product.getPriceId(), taxRate);
    elements.add(lineItem);
}

共有1个答案

朱硕
2023-03-14

在产品上流动,将每个产品转换为一个行项目,并收集到一个列表。

List<SessionCreateParams.LineItem> elements =
    experience.getProducts()
              .stream()
              .map(p -> stripeProxy.createLineItem(1L, p.getPriceId(), 
                                                   getTaxRate(p.getPriceId())))
              .collect(Collectors.toList());
 类似资料:
  • 我在回答中使用了https://softwareengineering.stackExchange.com/A/400492/42195 方法返回一个返回委托流的调用。但这又是如何翻译成的呢?

  • 我被要求检索树节点的每个叶节点。我很快想到我可以在一行中完成这项工作! 第一眼看上去很不错,但很快它就遇到了一个,如果树深度达到~10,这是我无法接受的。后来我开发了一个没有递归和流的实现(但我的大脑被烤坏了),但我仍然想知道是否有一种方法可以用流做递归,因为我发现不接触流内部是不可能做到的。它需要一个新的Op,比如来做到这一点,否则我必须每一步都将所有结果收集到中,然后再对该进行操作: 不像看起

  • 我有一个ANTLR3语法,它构建了一个抽象语法树。我正在考虑升级到ANTLR4。但是,ANTLR4似乎只构建解析树,而不构建抽象语法树。例如,选项不再被识别。此外,在“最终的ANTLR4参考文献”的文本中既没有“AST”也没有“抽象语法”。

  • Dart语言没有枚举(还没有??).至少在语言特性出现之前,构造枚举的正确或惯用方法是什么?

  • 我需要多次使用一个流。我试过这样的东西:

  • 我读到有一个线程池,这个池注定要减少创建新线程的成本(至少我这样理解下面的短语): 当您向执行程序发送任务时,它会尝试使用一个池线程来执行此任务,以避免线程的持续生成。[Java7并发Cookbook] 但是,我知道我们没有办法在Java重启线程。 问题:ThreadPoolExecutor如何避免创建新线程?