我正在尝试forEach中的方法引用
private static void printConditionally8(List<Person> people, Predicate<Person> predicate) {
people.forEach(p-> { if (predicate.test(p)){
System.out.println("Print here");}
});
}
上面的工作很好,但我想让它更短的使用方法参考,但它给编译的问题,有什么办法使它发生?
private static void printConditionally8(List<Person> people, Predicate<Person> predicate) {
people.forEach({ if (predicate::test){
System.out.println("Print here");}
});
}
您应该能够在运行操作之前筛选列表:
people.stream().filter(predicate).forEach(p -> System.out.println("Print here"));
您不能使用if(predicate::test)
,因为if
采用的是布尔表达式(这里甚至不知道predicate::test
的类型--请检查lambda表达式的目标类型文档)。使其工作的唯一方法是调用test()
方法,就像您在第一个代码段中所做的那样。
在Java 8中,您可以使用方法引用来过滤流,例如: 有没有一种方法可以创建一个方法引用,它是现有方法引用的否定,例如: 我可以像下面这样创建方法,但我想知道JDK是否提供了类似的东西。
问题内容: 在Java8中,可以使用方法引用来过滤流,例如: 是否有方法创建一个方法引用,该方法引用是对现有方法引用的否定,例如: 我可以创建如下的方法,但我想知道JDK是否提供了类似的功能。 问题答案: Predicate.not( … ) java-11提供了一个新的方法谓词 因此可以否定方法引用:
JUnit 4.12
问题内容: 我已经看到了一些与此相关的问题,但是对于我的特定问题,我似乎无法理解任何答案。 我有一个模拟对象,让我们调用“ object1”,将其发送到某种测试方法,让我们调用testMethod()。所以我最后打电话 用于检测。现在在这个testMethod的某个地方,它将有一部分调用方法 这是一个无效方法。如果方法像 它实际上会返回什么,我通常会这样做 但是,这是一个无效方法,我只想测试一下它
问题内容: 我已经开始发现Mockito库,并且有一个我没有找到正确答案的问题。 例如,如果我的UserDAO类中有将用户保存到数据库中的此类方法: 我应该如何测试? 如果我想测试一个DAO类,那么我需要创建一个模拟,模拟,模拟等吗?如此不测试数据库本身? 但是,如果我还想测试dao和数据库的行为怎么办? 您能否提供一些代码示例,可能有用的链接,并显示实现此目的的最佳方法? 问题答案: 这是使用M
问题内容: 如何使用标签链接到方法? 我想要改变: 至: 但我不知道如何正确设置标签格式。 问题答案: 您可以 在标准Doclet 的 文档注释规范中 找到有关JavaDoc的许多信息,包括有关JavaDoc 的信息。 {@link package.class#member标签} 标签(您要查找的)。文档中的相应示例如下 例如,以下注释引用了getComponentAt(int,int)方法: 如