자바 함수 식 인터페이스

함수 식 인터페이스 가 무엇 입 니까?
자바 언어 디자이너 는 기 존의 함수 가 lambda 를 우호 적 으로 지원 하 는 방법 에 대해 많은 정력 을 기 울 였 다.최종 적 으로 취 하 는 방법 은 함수 식 인터페이스의 개념 을 증가 시 키 는 것 이다.함수 식 인 터 페 이 스 는 하나의 방법 을 가 진 일반 인터페이스 이다.이러한 인 터 페 이 스 는 암시 적 으로 lambda 표현 식 으로 변환 할 수 있 습 니 다.java.lang.Runnable 과 java.util.concurrent.Callable 은 함수 식 인터페이스의 가장 전형 적 인 두 가지 예 이다.실제 사용 과정 에서 함수 식 인 터 페 이 스 는 오류 가 발생 하기 쉽다.만약 에 누군가가 인터페이스 정의 에 다른 방법 을 추가 하면 이 인 터 페 이 스 는 더 이상 함수 식 이 아니 라 컴 파일 과정 도 실패 할 것 이다.함수 식 인터페이스의 이러한 취약 성 을 극복 하고 인터페이스 가 함수 식 인터페이스 로 서 의 의 도 를 명확 하 게 밝 힐 수 있 도록 자바 8 은 특수 한 주 해 를 추가 했다.이 함수 식 인터페이스의 정 의 를 봅 시다.
@FunctionalInterface
public interface Functional {
    void method();
}

주의해 야 할 것 은 기본 방법 과 정적 방법,그리고 Object 대상 을 다시 쓰 는 방법 은 함수 식 인터페이스의 계약 에 영향 을 주지 않 습 니 다.
lamda 와 함수 식 인터페이스의 조합 사용
import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;

public class Test {
    public static void main(String args[]){
          List list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
            
          // Predicate predicate = n -> true
          // n          Predicate     test   
          // n       test      true
            
          System.out.println("      :");
            
          //      n
          eval(list, n->true);
            
          // Predicate predicate1 = n -> n%2 == 0
          // n          Predicate     test   
          //    n%2   0 test      true
            
          System.out.println("      :");
          eval(list, n-> n%2 == 0 );
            
          // Predicate predicate2 = n -> n > 3
          // n          Predicate     test   
          //    n    3 test      true
            
          System.out.println("     3      :");
          eval(list, n-> n > 3 );
          
       }
        
       public static void eval(List list, Predicate predicate) {
          for(Integer n: list) {
            
             if(predicate.test(n)) {
                System.out.println(n + " ");
             }
          }
       }
}

실행 결과:
      :
1 
2 
3 
4 
5 
6 
7 
8 
9 
      :
2 
4 
6 
8 
     3      :
4 
5 
6 
7 
8 
9 

작가@이야기 없 는 할아버지 가 사 는 것 은 그 자 체 를 살기 위해 사 는 것 이지,살 아 있 는 것 이외 의 어떤 것 도 살기 위해 사 는 것 이 아니다.

좋은 웹페이지 즐겨찾기