산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

자바 8 - 기능적 인터페이스

기능적 인터페이스에는 표시할 단일 기능이 있습니다. 예를 들어, 단일 메소드 'compareTo'가 있는 Comparable 인터페이스는 비교 목적으로 사용됩니다. Java 8은 람다 식에서 광범위하게 사용되는 많은 기능적 인터페이스를 정의했습니다. 다음은 java.util.Function 패키지에 정의된 기능 인터페이스 목록입니다.


시니어 번호 인터페이스 및 설명
1

바이컨슈머

두 개의 입력 인수를 받아들이고 결과를 반환하지 않는 작업을 나타냅니다.

2

바이펑션

두 개의 인수를 받아 결과를 생성하는 함수를 나타냅니다.

3

이진 연산자

동일한 유형의 두 피연산자에 대한 연산을 나타내며 피연산자와 동일한 유형의 결과를 생성합니다.

4

BiPredicate

두 인수의 술어(부울 값 함수)를 나타냅니다.

5

부울 공급업체

부울 값 결과의 공급자를 나타냅니다.

6

소비자

단일 입력 인수를 받아들이고 결과를 반환하지 않는 작업을 나타냅니다.

7

이중 바이너리 연산자

두 개의 이중 값 피연산자에 대한 연산을 나타내며 이중 값 결과를 생성합니다.

8

이중 소비자

단일 이중 값 인수를 허용하고 결과를 반환하지 않는 연산을 나타냅니다.

9

이중 기능

이중 값 인수를 허용하고 결과를 생성하는 함수를 나타냅니다.

10

이중 술어

하나의 이중 값 인수의 술어(부울 값 함수)를 나타냅니다.

11

이중 공급업체

이중 가치 결과의 공급자를 나타냅니다.

12

DoubleToIntFunction

이중 값 인수를 허용하고 int 값 결과를 생성하는 함수를 나타냅니다.

13

DoubleToLongFunction

이중 값 인수를 허용하고 긴 값 결과를 생성하는 함수를 나타냅니다.

14

DoubleUnaryOperator

이중 값 결과를 생성하는 단일 이중 값 피연산자에 대한 연산을 나타냅니다.

15

기능

하나의 인수를 받아 결과를 생성하는 함수를 나타냅니다.

16

IntBinaryOperator

두 개의 int 값 피연산자에 대한 연산을 나타내며 int 값 결과를 생성합니다.

17

IntConsumer

단일 int 값 인수를 허용하고 결과를 반환하지 않는 작업을 나타냅니다.

18

IntFunction

int 값 인수를 받아들이고 결과를 생성하는 함수를 나타냅니다.

19

IntPredicate

하나의 int 값 인수의 술어(부울 값 함수)를 나타냅니다.

20

IntSupplier

정수 값 결과의 공급자를 나타냅니다.

21

IntToDoubleFunction

int 값 인수를 허용하고 이중 값 결과를 생성하는 함수를 나타냅니다.

22

IntToLongFunction

int 값 인수를 받아들이고 긴 값 결과를 생성하는 함수를 나타냅니다.

23

IntUnaryOperator

int 값 결과를 생성하는 단일 int 값 피연산자에 대한 연산을 나타냅니다.

24

LongBinaryOperator

두 개의 긴 값 피연산자에 대한 연산을 나타내며 긴 값의 결과를 생성합니다.

25

장기 소비자

하나의 긴 값 인수를 허용하고 결과를 반환하지 않는 작업을 나타냅니다.

26

장기능

긴 값의 인수를 받아 결과를 생성하는 함수를 나타냅니다.

27

LongPredicate

하나의 긴 값 인수의 술어(부울 값 함수)를 나타냅니다.

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

정수 값 결과를 생성하는 함수를 나타냅니다.

41

ToLongBiFunction

두 개의 인수를 허용하고 긴 값의 결과를 생성하는 함수를 나타냅니다.

42

ToLongFunction

긴 값을 생성하는 함수를 나타냅니다.

43

단항 연산자

피연산자와 동일한 유형의 결과를 생성하는 단일 피연산자에 대한 연산을 나타냅니다.


기능 인터페이스 예

술어 인터페이스는 부울 값을 반환하는 test(Object) 메서드가 있는 기능적 인터페이스입니다. 이 인터페이스는 개체가 참 또는 거짓으로 테스트되었음을 ​​나타냅니다.

예를 들어 C:\> JAVA.

에서 원하는 편집기를 사용하여 다음 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. 자바 연산자
  2. 자바 주석
  3. 자바 for-each 루프
  4. 자바 문자열
  5. 자바 인터페이스
  6. 자바 익명 클래스
  7. 자바 리소스 사용
  8. 자바 주석
  9. 자바 어설션
  10. 자바 벡터