任何适合上述CRITION的接口都被视为功能接口。但是,我们可以通过接口上的Notes @functational Interface使其更明确地向编译器。不需要此符号,但我们是错误的后卫:如果我们使用@FunctionalInterface写下接口,并且由于某些偶然原因,我们在接口中创建了多个摘要,则编译器已经确定一个错误并警告我们问题的接口可能有母亲©所有抽象。
java按标准为我们提供了一些与lambdas足够的功能接口,但是我们也可以创建我们的角色功能接口,只需遵循只有一个母亲的标准©All All Abrack.br> br> 一些广泛使用的功能接口是:消费者,谓词,功能和供应商。
- 消费者:仅接受一个参数(仿制药),并且没有返回值。
- Bi-Concumer:收到两个参数,而不是返回值。
- 谓词:接受值或参数,并返回布尔响应(true/false)。可以使用strument. 使用类实现。
- BI-PEDICATE:收到两个参数并返回一个布尔值。
- 函数:接收一个参数(仿制药)并在处理后返回一个值(generics)。
- 双功能:接收两个参数,而函数接受一个参数。
- 单一操作员和二进制操作员:还有其他两个功能接口被提名为联合操作员和Bimon操作员。分别扩展功能和双功能。简而言之,没有伤害的运算符扩展到功能,而BAM计算机则扩展到双功能。
- 供应商:请勿收到任何入口或参数并返回输出。供应商功能接口有徒劳的扩展,例如booleansupplier,doublesupplier,longsupplier和intsupplier。所有其他这些专业的回报类型仅是它们相应的原语。
谓词功能接口用于测试对象上的条件并返回布尔值。在下面的示例中,我们将以两种方式使用谓词:第一个查看数字是否大于零。在此示例中,我们定义了一个称为isgaterthanzero的谓词,该谓词检查数字是否大于零。我们使用Predicate的Test()test()来测试不同数字的条件并打印布尔值结果。
在第二种形式中,我们有一个包含数字1、4和5的Mimers列表0)。
记住我们可以在更复杂的上下文中,尤其是在使用lambda表达式中使用功能界面。