java - 从 Groovy 中的 List<WebElement> 获取文本

标签 java arraylist groovy

我正在处理实现 groovy lambda 函数将文本从 List 集合获取到 List 集合的问题。 原始java代码:

list.stream().map(WebElement::getText).collect(Collectors.toList());

我的 Groovy 版本失败:

list.stream().map({ WebElement } as String).collect(Collectors.toList())

groovy.lang.MissingMethodException: No signature of method: java.util.stream.ReferencePipeline$Head.map() is applicable for argument types: (java.lang.String) values: [quality1.CommonMethods$_clickSubMenuLeftBar_closure2@4e49ce2b] Possible solutions: map(java.util.function.Function), max(java.util.Comparator), min(java.util.Comparator), wait(), grep(), any() –

有人可以帮我如何让它工作吗?我试图使用类似的方法,如下所示:http://mrhaki.blogspot.com/2015/04/groovy-goodness-use-closures-as-java.html但没有成功。

最佳答案

Groovy 3.0(当前版本:3.0.0-alpha-3)将支持 lambda 表达式和方法引用,这要归功于新的 parrot 解析器 - http://groovy-lang.org/releasenotes/groovy-3.0.html

对于 Groovy 2.5.x 及更早版本,您必须替换方法引用:

WebElement::getText

有一个闭包:

{ el -> el.getText() }

最终的工作示例应如下所示:

list.stream().map{ el -> el.getText() }.collect(Collectors.toList())

关于java - 从 Groovy 中的 List<WebElement> 获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51634927/

相关文章:

java - 使用流在java中进行内部连接

java - TestNG 无法通过线程测试失败

当存在多个类时,Java 中 ArrayList 出现问题并帮助修复代码

android.net.Uri$HierarchicalUri 无法转换为 java.util.ArrayList

java - Java 中创建数组和数组列表是一回事吗?

android - Gradle 任务找不到 local.properties 文件

java - 您可以在 java 6 中使用带有枚举列表的 switch 语句吗?

java - ":P"在 JDO 查询中意味着什么

grails - GORM可以复制整个对象吗?

java - 具有元素数量限制的 Groovy .collect