List<MolportEntryVerification> verificationList = molportEntries.stream()
.peek{if(i++%50 == 0){println(df.format(i/count))}}
.map({entry -> verifier.verifyEntry(entry, new Standardizer(molportConfig), new Standardizer(bciConfig))})
.collect(Collectors.toList())
groovy.lang.missingMethodException:方法的无签名:java.util.stream.referencePipeline$head.peek()适用于参数类型:(MolportFileverization$_run_closure1)值:[MolportFileverization$_run_closure1@d62472f]可能的解决方案:peek(java.util.function.consumer)、grep()、sleep(long)、use([ljava.lang.object;)、grep(java.lang.object)、wait()
长count=molportentries.stream().count();
工作时没有错误信息。
public class BasicMolportEntry {
public BasicMolportEntry(String molportId, String etxcId, String smiles) {
this.molportId = molportId == null ? "" : molportId;
this.etxcId = etxcId == null ? "" : etxcId;
this.smiles = smiles;
}
加上所有平常的...
有什么建议吗?
以下代码:
class MolportEntryVerification {}
class BasicMolportEntry {}
def molportEntries = (1..200).collect { new BasicMolportEntry() }
def i = 0
List<MolportEntryVerification> result = molportEntries.stream()
.peek { if(i++%50 == 0) { println(i-1) } }
.map { e -> new MolportEntryVerification() }
.toList()
println "size: ${result.size()}"
模仿问题中的代码在groovy 2.5.7中可以正常工作,在groovy 2.3.9中缺少tolist()
(代码中没有该代码,但它是收集器语法的缩写),并出现以下错误:
~> groovy solution.groovy
Caught: groovy.lang.MissingMethodException: No signature of method: java.util.stream.ReferencePipeline$Head.peek() is applicable for argument types: (solution$_run_closure2) values: [solution$_run_closure2@d706f19]
Possible solutions: peek(java.util.function.Consumer), grep(), sleep(long), use([Ljava.lang.Object;), grep(java.lang.Object), wait()
groovy.lang.MissingMethodException: No signature of method: java.util.stream.ReferencePipeline$Head.peek() is applicable for argument types: (solution$_run_closure2) values: [solution$_run_closure2@d706f19]
Possible solutions: peek(java.util.function.Consumer), grep(), sleep(long), use([Ljava.lang.Object;), grep(java.lang.Object), wait()
at solution.run(solution.groovy:7)
在groovy 1.8.8中。这看起来与您所遇到的MissingMethodException相同。
我很想知道为什么Java的可选不提供类似于流的方法。 接口的method javadoc声明: @apiNote此方法主要用于支持调试,您希望在元素流经管道中的某个点时看到这些元素 这几乎完全描述了我的用例: (返回 方法,上述所有内容都会转换为: 也可以这样做(参见此答案): 并将其与方法一起使用: 但我认为这是一个黑客,而不是的干净用法。 从Java 9开始,可以将< code>Optiona
我有以下情况:有一个对象列表-ProductData,其中包含几个字段: 还有一个API,它返回以下对象的列表: 但它会返回带有空“计划名称”字段的对象,因为在提取该对象时不允许这样做。我需要通过外部参照将产品数据与RatingTableRow链接,以便将计划名称设置到RatingTableRow中,因为我以后需要使用此对象,所以我创建了以下代码来实现这一点: 我知道java文档说,不适合这些需求
我偶然发现了一个我无法解决的任务。我不得不修改代码以打印而不是。 我明白为什么要这样印。 我很感激任何帮助。
Groovy 为预定义的 List 和 Map 集合提供了一些操作捷径,这两个字面值都比较简单易懂,但是 Map 会有一些不同. 例如,当您使用 “apply” 方法使用插件时,apply 会自动加上 Map 的一个参数,当您这样写 “ apply plugin: ‘java’ “时,实际上使用的是 name 参数(name-value),只不过在 Groovy 中 使用 Map 没有 < > ,