亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

Java 8 - 功能接口

函数式接口只有一个功能可以展示。例如,具有单个方法“compareTo”的 Comparable 接口用于比较目的。 Java 8 定义了许多函数式接口,可在 lambda 表达式中广泛使用。以下是java.util.Function包中定义的功能接口列表。


Sr.No. 界面和说明
1

BiConsumer

表示接受两个输入参数且不返回结果的操作。

2

BiFunction

表示一个接受两个参数并产生结果的函数。

3

二元运算符

表示对两个相同类型的操作数进行操作,产生与操作数相同类型的结果。

4

双谓词

表示两个参数的谓词(布尔值函数)。

5

布尔供应商

表示布尔值结果的供应商。

6

消费者

表示接受单个输入参数且不返回结果的操作。

7

DoubleBinaryOperator

表示对两个双值操作数进行操作并产生双值结果。

8

双重消费者

表示接受单个双值参数且不返回结果的操作。

9

双功能

表示一个接受双值参数并产生结果的函数。

10

双谓词

表示一个双值参数的谓词(布尔值函数)。

11

双供应商

代表双值结果的供应商。

12

DoubleToIntFunction

表示一个接受双值参数并产生 int 值结果的函数。

13

DoubleToLongFunction

表示一个接受双值参数并产生长值结果的函数。

14

双元运算符

表示对产生双值结果的单个双值操作数的操作。

15

函数

表示接受一个参数并产生结果的函数。

16

IntBinaryOperator

表示对两个 int 值操作数的操作并产生一个 int 值结果。

17

内部消费者

表示接受单个 int 值参数且不返回结果的操作。

18

IntFunction

表示一个接受 int 值参数并产生结果的函数。

19

IntPredicate

表示一个 int 值参数的谓词(布尔值函数)。

20

内部供应商

表示一个 int 值结果的供应商。

21

IntToDoubleFunction

表示一个接受 int 值参数并产生双值结果的函数。

22

IntToLongFunction

表示一个接受 int 值参数并产生 long 值结果的函数。

23

IntUnaryOperator

表示对单个 int 值操作数的操作,该操作产生 int 值结果。

24

LongBinaryOperator

表示对两个长值操作数的操作并产生一个长值结果。

25

长期消费者

表示接受单个长值参数且不返回结果的操作。

26

长函数

表示一个接受长值参数并产生结果的函数。

27

长谓词

表示一个长值参数的谓词(布尔值函数)。

28

长期供应商

代表长期价值结果的供应商。

29

LongToDoubleFunction

表示一个接受长值参数并产生双值结果的函数。

30

LongToIntFunction

表示一个接受长值参数并产生 int 值结果的函数。

31

LongUnaryOperator

表示对单个长值操作数的操作,该操作产生一个长值结果。

32

ObjDoubleConsumer

表示接受对象值和双值参数且不返回结果的操作。

33

ObjIntConsumer

表示接受对象值和 int 值参数的操作,并且不返回任何结果。

34

ObjLongConsumer

表示接受对象值和长值参数且不返回结果的操作。

35

谓词

表示一个参数的谓词(布尔值函数)。

36

供应商

代表结果的提供者。

37

ToDoubleBiFunction

表示接受两个参数并产生双值结果的函数。

38

ToDoubleFunction

表示产生双值结果的函数。

39

ToIntBiFunction

表示一个接受两个参数并产生一个 int 值结果的函数。

40

ToIntFunction

表示产生 int 值结果的函数。

41

ToLongBiFunction

表示一个接受两个参数并产生一个长值结果的函数。

42

ToLongFunction

表示产生长值结果的函数。

43

一元运算符

表示对单个操作数的操作,该操作产生与其操作数相同类型的结果。


功能接口示例

Predicate 接口是一个函数接口,带有一个方法 test(Object) 返回一个布尔值。这个接口表示一个对象被测试为真或假。

使用您选择的任何编辑器创建以下 Java 程序,例如 C:\> JAVA。

Java8Tester.java

现场演示
import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;

public class Java8Tester {

   public static void main(String args[]) {
      List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
		
      // Predicate<Integer> predicate = n -> true
      // n is passed as parameter to test method of Predicate interface
      // test method will always return true no matter what value n has.
		
      System.out.println("Print all numbers:");
		
      //pass n as parameter
      eval(list, n->true);
		
      // Predicate<Integer> predicate1 = n -> n%2 == 0
      // n is passed as parameter to test method of Predicate interface
      // test method will return true if n%2 comes to be zero
		
      System.out.println("Print even numbers:");
      eval(list, n-> n%2 == 0 );
		
      // Predicate<Integer> predicate2 = n -> n > 3
      // n is passed as parameter to test method of Predicate interface
      // test method will return true if n is greater than 3.
		
      System.out.println("Print numbers greater than 3:");
      eval(list, n-> n > 3 );
   }
	
   public static void eval(List<Integer> list, Predicate<Integer> predicate) {

      for(Integer n: list) {

         if(predicate.test(n)) {
            System.out.println(n + " ");
         }
      }
   }
}

这里我们传递了 Predicate 接口,它接受单个输入并返回布尔值。

验证结果

使用 javac 编译类 编译器如下-

C:\JAVA>javac Java8Tester.java

现在按如下方式运行 Java8Tester -

C:\JAVA>java Java8Tester

它应该产生以下输出 -

Print all numbers:
1
2
3
4
5
6
7
8
9
Print even numbers:
2
4
6
8
Print numbers greater than 3:
4
5
6
7
8
9

java

  1. Java 运算符
  2. Java 评论
  3. Java for-each 循环
  4. Java 字符串
  5. Java 接口
  6. Java 匿名类
  7. Java try-with-resources
  8. Java 注释
  9. Java 断言
  10. Java 向量
  11. Java - 接口
  12. Java 8 - 功能接口