我是Java-8和Appium的新手,并尝试使用Java-8编写我的webdriver代码,如下所述
目前下面的代码可以正常工作,但我不想在下面的第5行和第6行中分别在单独的行中编写Function和Consumer,我想进一步优化代码,例如在Consumer中使用Function或在Function中使用Consumer.Thanks !提前
public class Gestures_Drag_And_Drop {
AndroidDriver<AndroidElement> driver;
Function<String, AndroidElement> F = driver::findElementByXPath;//line 5
Consumer<AndroidElement> C = AndroidElement::click; //line 6
Gestures_Drag_And_Drop() {
C.accept(F.apply("//android.widget.TextView[@text='Views']"));
}
public static void main(String[] args) throws MalformedURLException {
new Gestures_Drag_And_Drop();
}
}
解决方法:
您的函数或使用者变量不必只是方法引用,您可以使用lambda表达式定义所需的任何方法主体.我猜你要求这样的事情:
BiConsumer<String, WebDriver> findAndClick = (locator, webdriver) -> webdriver.findElement(By.xpath(locator)).click();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。