当前位置: 首页 > 网络应用技术

在-JDK提供的功能接口的深度理解中

时间:2023-03-05 23:38:31 网络应用技术

  功能接口是一个仅定义一个抽象方法的接口。对于所有功能接口,我们可以为其创建lambda表达式。

  让我们简要介绍函数接口。

  功能接口是一个仅定义一个抽象方法的接口。由于JDK8开始提供关键字,功能接口不仅可以定义一个方法。即使只有一个抽象方法,即使有很多默认方法和接口的静态方法,也是一个功能接口。

  该函数接口的功能是,允许lambda表达式的形式作为功能接口实现,并将整个表达式用作其自己的实例。换句话说,lambda表达式可以在使用功能接口用作功能接口的任何地方作用方法参数。

  例如,运行可运行是一个功能界面,因为其中只有此抽象方法,因此可以使用lambda表达式在可运行的参数时可以使用。

  当使用lambda表达式作为功能接口时,该功能接口的抽象方法的签名是lambda表达式的签名。该抽象方法称为函数描述符。

  方法签名是Java中方法签名的概念。它用于确定同一类中方法的唯一性。它由方法名称,方法参数类型和方法参数编号组成。对于功能接口,因为法规只能具有一个抽象方法来表示lambda表达式,因此忽略了方法名称的属性。

  请注意,函数描述符与方法描述符区分开。方法描述符是JVM的概念,该概念用于描述方法的属性,包括参数,参数类型的数量和方法的返回值。

  Java的设计师还考虑在Java中添加“函数类型”以进行传输方法参考和Lambda表达式,但价格太高。由于Java工程师熟悉接口的工具,因此接口用于传递lambda lambdamethod Quote。用于传递lambda的接口称为功能界面。

  该函数接口的徽标是在接口上标记了它是一个功能接口。但实际上,只要只有一个抽象方法,该接口就是一个函数接口,可以代表lambda。即使没有添加此注释,也可以工作。

  因此,该注释的最大意义是通知程序员和编译器。程序员看到此注释后,他将意识到这是一个功能性界面。编译器识别此注释后,接口中只会有一个抽象方法。如果没有,它将报告错误并拒绝编译:

  或者

  功能编程的想法是“无副作用”和“不可正性”。如果方法不修改输入参数的状态或它所属的对象状态,也不会修改全局变量的状态,那么方法存储或无副作用。

  存款的功能是功能编程的追求和指导。对于存款的函数,无论是同步还是并行,它的任何使用都是安全的,因为它无法更改任何其他对象的状态。

  因此,如果功能接口是功能接口,那么当我们使用它时,我们可以以最安全的方式编程,而无需考虑任何线程安全性和可变逃逸。

  抛弃异常也是对呼叫者状态的改变,因此,抛出异常的函数不是函数。

  但这只是指导意识形态,而不是一切,因为在大多数情况下,Java的“一切”思想与“存在函数”冲突。我们的目的是充分利用这两者,以便我们可以使用更完美的编程策略。b适用于A。

  Java基本上为您可以想到的各种形式的lambda签名提供了默认功能接口。在这里,记录和列表可轻松审查。

  Java提供的功能接口全部都在袋中。每个接口的抽象功能描述了其lambda签名,但是此描述是正确的且非形式的,请注意。您可以描述它,只要您包含参数列表,并且返回值。

  代码块runnablernnable表示“运行”,用于指示没有参数值的函数。

  没有输入,没有输出,lambda签名,只需执行函数中的代码即可。

  使用:

  谓词谓词谓词表示“谓词”和“谓词”。谓词用于判断,并且可以应用语法中的谓词,例如...和。接口用于表示判断参数的函数。

  输入t对象,输出布尔值,如果t符合条件,则将lambda签名返回到true,否则将返回false。

  使用:

  双质拟合也是一个谓词功能,但它可以接受两个操作。名称中的“双”的含义是函数“ dual”。该接口用于指示两个参数的合并判断的函数。

  输入t对象和u对象,然后输出布尔值。Lambda被签名。如果t和u满足条件,请返回真实,否则将返回false。

  使用:

  专业谓词的每个专业化都有三个构造链的默认方法。

  消费者 - 一美元的消费者消费者说“消费者”,用于表示处理参数的函数。

  输入t对象,没有输出,lambda被签名用于处理t,当然,您无法操作任何操作。

  使用:

  二进制消费者双香量也是消费者,但它作用于两个操作。该接口用于指示处理两个输入参数的函数。

  输入t对象和u对象,没有输出,lambda签名用于处理T和U。

  使用:

  专用消费者功能功能的功能:给定输入数据集,该数据集将输出计算结果。

  一个 - 美元函数是一个函数,但这是最常见的一个 - 美元函数,用于指示表示输入参数处理并返回处理结果的函数。

  输入T类型对象,输出R类型对象,Lambda签名用于将T转换为R类型数据。

  使用:

  二进制函数分置用于指示两个输入参数的函数,并返回处理结果。

  输入T对象和U对象,输出R类型对象,Lambda签名用于将T和U转换为R类型数据。

  使用:

  专业函数操作员操作员的特征:所有操作的类型和结果都是相同的,它们属于特殊函数。因此,操作员可以继承该函数,当然,可以不继承(﹁﹁)?→。

  一美元计算联合国大学中“一美元”的含义。该接口表示处理输入参数并返回相同类型的数据类型的函数。

  从函数,输入t对象和输出t类型数据继承。LAMBDA签名是与参数类型相同结果的结果。

  使用:

  二进制计算二进制操作器用于指示两个-Type输入参数的函数,并返回相同类型的结果。

  从重点继承,输入两个T对象,输出T类型数据,Lambda签名用于将T1和T2作为T3处理。

  使用:

  专业运营商供应商供应商的特征是不需要输入数据,供应商将向外提供数据,即输出数据。

  供应商可以提供任何类型的数据。接口表示提供一种类型数据的函数。

  没有输入,输出t类型数据,lambda签名,基于函数中的逻辑生成t类型数据。

  使用:

  专业供应商作者:辐射工人