当前位置: 首页 > 面试题库 >

Java-使用不带lambda表达式的谓词

姬选
2023-03-14
问题内容

我低于要求:

Employee.java

public boolean isAdult(Integer age) {
    if(age >= 18) {
        return true;
    }
    return false;
}

谓词.java

    private Integer age;
Predicate<Integer> isAdult;

public PredicateAnotherClass(Integer age, Predicate<Integer> isAdult) {
    this.age = age;
    System.out.println("Test result is "+ isAdult(age));
}

public void testPredicate() {
    System.out.println("Calling the method defined in the manager class");

}

现在,我的目标是使用class中定义的方法测试要传递给的 年龄
是否Predicate成年Employee,为此,我要传递在Predicate类的构造函数中传递的方法引用。

但是我不知道如何调用在Employee类中定义的方法,下面是我的测试类:-

public class PredicateTest {

    public static void main(String[] args) {
        PredicateManager predicateManager = new PredicateManager();

        PredicateAnotherClass predicateAnotherClass = new PredicateAnotherClass(20, predicateManager::isAdult);
        predicateAnotherClass.testPredicate();;
    }
}

System.out.println("Test result is "+ isAdult(age));predicate课程中收到编译错误。

让我知道如何解决此问题。以及是否需要提供其他信息。


问题答案:

谓词接口具有方法test()。您应该通过以下方式使用此方法:

isAdult.test(age)

此方法根据给定参数评估该谓词。如果输入参数与谓词匹配,则返回true,否则返回false



 类似资料:
  • 主要内容:作为参数使用Lambda表达式,访问变量,方法引用在《 Java Lambda表达式》和《 Java Lambda表达式的3种简写方式》一节中我们了解了 Java Lambda 的概念并可以在匿名类的场合使用 Lambda 语法进行简单替换。本节主要介绍在 Java 中如何使用 Lambda 表达式。 作为参数使用Lambda表达式 Lambda 表达式一种常见的用途就是作为参数传递给方法,这需要声明参数的类型声明为函数式接口类型。示例代码如下:

  • 我想使用方法按长度对数组中的字符串元素进行排序。我在这里被告知,可以使用lambda表达式而不是创建实现比较器的新类。用完全相同的方式做了,但它不起作用。

  • 问题内容: Java8中添加了Lambda表达式。我想理解为什么这很重要。对于尚未接触函数式编程习惯的Java程序员意味着什么?这是否意味着我可以编写出性能更好的代码或可大规模扩展的代码,还是只会使代码的详细程度降低。或全部。 问题答案: Oracle已经提供了有关该主题的教程。它列出了几个很好的用例。 在找到链接之前,我要说的是lambda表达式可让您将“函数”传递给代码。因此,您可以更轻松地编

  • 主要内容:函数式接口Lambda 表达式(Lambda expression)是一个匿名函数,基于数学中的λ演算得名,也可称为 闭包(Closure)。现在很多语言都支持 Lambda 表达式,如 C++、 C#、 Java、 Python 和 JavaScript 等。 Lambda 表达式是推动 Java 8 发布的重要新特性,它允许把函数作为一个方法的参数(函数作为参数传递进方法中),下面通过例 1 来理解 L

  • 我在第42和43行出现错误:,未处理的异常类型InterruptedException。如果我尝试quickfix,它将创建带有catch异常的try catch,它将具有相同的错误,并将尝试以相同的方式修复它,继续用try catch包围它。

  • 假设我在DB的表格中有以下记录。 这里的Emplid和date组合是我的主键。每次更改我都会保存记录的版本。(在最后3行中,共有3个版本作为数量变化)。 现在我想获取最新版本的记录,其中emplid=1111 date=28-02-2019(用户不知道数据库中有多少版本)。 我怎么能用lambda表达式呢。 这会给我vesrion 1。但是我怎样才能得到最新的版本呢。