Java 是否可以在下面的代码段中使用方法引用
我是Java8新手,正在学习方法参考。我正在编码,在下面的例子中使用了lambda表达式。但是声纳林特说,下面的线可以通过使用方法参考进一步减少。现在我对它的实现感到困惑Java 是否可以在下面的代码段中使用方法引用,java,selenium,java-8,Java,Selenium,Java 8,我是Java8新手,正在学习方法参考。我正在编码,在下面的例子中使用了lambda表达式。但是声纳林特说,下面的线可以通过使用方法参考进一步减少。现在我对它的实现感到困惑 打字 我读到,当我们只是在传递即将发生的事情时,应该使用方法参考。 例如,o->System.out.println(o)可以写成System.out::println 在以下情况下可以实现方法引用吗 ExpectedCondition<Boolean> cc = (x) -> { Javas
o->System.out.println(o)
可以写成System.out::println
在以下情况下可以实现方法引用吗
ExpectedCondition<Boolean> cc = (x) -> {
JavascriptExecutor j = (JavascriptExecutor) x;
return (Boolean) j.executeScript("return document.readyState").toString().equals(completeString);
};
ExpectedCondition cc=(x)->{
JavascriptExecutor j=(JavascriptExecutor)x;
return(Boolean)j.executeScript(“return document.readyState”).toString().equals(completeString);
};
Boolean乐趣(WebDriver d)
{
JavascriptExecutor j=(JavascriptExecutor)d;
return(Boolean)j.executeScript(“return document.readyState”).toString().equals(“”);
}
ExpectedCondition cd=this::fun;
请参阅关于对带有参数的调用使用方法引用。它是否应该是.equals(x)
而不是.equals(completeString)
?@AndreasLundgren它是一个单独的string@BeginnersSake当然,对不起,我太愚蠢了。完全错过了那里的演员。。。您可以使用一系列函数。编写来执行各种操作。然而,我并不认为这是一种进步。作为一种编码风格,我需要在适当的情况下将多行lambda迁移到一个命名良好的方法中;但除此之外,我将保留此代码。它可以简化为表达式形式:ExpectedCondition cc=(x)->((JavascriptExecutor)x).executeScript(“return document.readyState”).toString().equals(completeString)代码>而不是方法引用(除非您创建一个包含该代码的专用方法,但这不是一种简化,这正是lambda表达式为您所做的)。
Boolean fun(WebDriver d)
{
JavascriptExecutor j = (JavascriptExecutor) d;
return (Boolean) j.executeScript("return document.readyState").toString().equals("");
}
ExpectedCondition<Boolean> cd = this::fun;