Java 是否可以在下面的代码段中使用方法引用

Java 是否可以在下面的代码段中使用方法引用,java,selenium,java-8,Java,Selenium,Java 8,我是Java8新手,正在学习方法参考。我正在编码,在下面的例子中使用了lambda表达式。但是声纳林特说,下面的线可以通过使用方法参考进一步减少。现在我对它的实现感到困惑 打字 我读到,当我们只是在传递即将发生的事情时,应该使用方法参考。 例如,o->System.out.println(o)可以写成System.out::println 在以下情况下可以实现方法引用吗 ExpectedCondition<Boolean> cc = (x) -> { Javas

我是Java8新手,正在学习方法参考。我正在编码,在下面的例子中使用了lambda表达式。但是声纳林特说,下面的线可以通过使用方法参考进一步减少。现在我对它的实现感到困惑

  • 打字
  • 我读到,当我们只是在传递即将发生的事情时,应该使用方法参考。 例如,
    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;