gpt4 book ai didi

java - 函数式接口(interface)应该直接调用吗?

转载 作者:行者123 更新时间:2023-11-30 06:45:45 24 4
gpt4 key购买 nike

我构建了几个实现功能接口(interface)的类,以便它们可以被重用,这些包括 Predicates、Functions 等。

当我将一个新实例传递到一个集合流中时,它们非常有用,例如:

myList.stream().filter(new PrimeNumberPredicate())...

今天通过直接创建和调用谓词找到了谓词的用法:

boolean result = new PrimeNumberPredicate().test(myData);

我觉得这段代码有点冗长,我想问一下是否有另一种写法,这样我就可以在不对单个对象显式调用 test() 的情况下进行测试。

最佳答案

我也不会。函数式接口(interface)的乐趣在于您不必显式地实现任何特定的接口(interface),也不必创建无用的对象。您所需要的只是一种可以满足您的需求的方法,并且您可以根据自己的意愿调整它。

静态定义谓词函数:

class PrimeNumbers {
public static boolean isPrime(int number) {
...
}
}

然后像这样在流中使用它:

myList.stream().filter(PrimeNumbers::isPrime)...

像您同事的非功能代码可以跳过实例化对象并直接调用函数:

boolean result = PrimeNumbers.isPrime(myData);

这样做的好处是让您可以自然地命名类和方法,而不是“predicate”或“test”或“apply”。

关于java - 函数式接口(interface)应该直接调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48393313/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com