我有一个使用 lambda 的代码片段,但是出现了错误
"target type of a lambda conversion must be an interface".
有人可以帮忙吗?我的代码如下:
private By optStarGrade = (strStar) -> { By.xpath("//input[@id='" + strStar + "'"); };
最佳答案
By
是一个类,所以它不能用作 lambda 表达式的目标类型。
只有具有 SAM(单一抽象方法)的接口(interface)才能用作 lambda 表达式的目标类型。
因此,如果您真的想使用 lambda,请使用 Consumer<String>
:
private Consumer<String> optStarGrade = (strStar) -> {By.xpath("//input[@id='" + strStar + "'");};
如果您不想忽略 By.xpath
的返回值然后使用 Function<String, By>
private Function<String, By> optStarGrade = (strStar) -> By.xpath("//input[@id='" + strStar + "'");
关于java - 使用 lambda for 机制在 Selenium 中查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53828987/