我低于要求:
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。但是我怎样才能得到最新的版本呢。