Lamdba - 함수 식 프로 그래 밍 1

4408 단어 lambda자바
Lamdba - 함수 식 프로 그래 밍 1
자바 의 중요 한 함수 인터페이스
인터페이스
매개 변수
반환 형식
사례
Predicate
T
boolean
테스트 통과 여부
Consumer
T
void
출력 값
Function
T
R
R 형식의 반환 값 가 져 오기
Supplier
None
T
공장 방법
UnaryOperator
T
T
논리 비 (!)
BinaryOperator
(T,T)
T
두 수의 합 또는 곱 을 구하 다.
Lambda 표현 식 판별
표현 식 변종 표기 법:
1. Runnable noArguments = () ->System.out.println("Hello World");
2.ActionListener oneArgument = event -> System.out.println("Hello World");
3. Runnable multiStatement = () ->{
System.out.println("Hello");
System.out.println("World");
}
4.BinaryOpterator add = (x,y) -> x+y;
5.BinaryOpterator add = (Long x,Long y) -> x+y;

() 매개 변수 가 없 음 을 의미 합 니 다.{} 코드 블록 4/5 의 쓰기 에 사용 할 수 있 습 니 다. 4 의 쓰기 방법 은 문맥 환경 분석 컴 파일 러 에 의 해 추정 되 기 때문에 기본 값 을 줍 니 다.
Lambda 표현 식 은 인용 값 이지 변수 가 아 닙 니 다.
main 방법 에서 다음 코드 를 작성 해 보 세 요. 컴 파일 러 에 어떤 힌트 가 있 는 지 알 수 있 습 니까?강제 실행 후 무엇 을 알려 줍 니까?
Integer initNum =0;
//      initNum     ,          ,
//  :   lambda       final        final 
Runnable runnable = () -> System.out.println(initNum++);
runnable.run();

상기 예 에서 알 수 있 듯 이 lambda 는 값 을 인용 하고 변수 가 아 닙 니 다. 자바 8 은 final 키 워드 를 강제로 쓰 라 고 요구 하지 않 았 지만 실제 컴 파일 과정 프로그램 이 자동 으로 추 가 된 것 과 같 습 니 다.강제로 추가 하 는 것 은 아니 고 코드 의 가 독성 을 증가 시 켰 을 뿐이다.람 다 표현 식 이 폐쇄 라 고도 불 리 는 이유 다.
Lambda 유형 추정
자바 7 때 유형 추정 은 이미 존재 합 니 다. 예 를 들 어:
1 2       ,map1     <>         
Map<String, Integer> map1 = new HashMap<>();
Map<String, Integer> map2 = new HashMap<String, Integer>();

다음 사례 를 들 어 보 겠 습 니 다.
 Predicate result = x -> x > 5;
 System.out.println(result.test(7));

Predicate 인터페이스 원본, 대상 을 받 아들 여 불 값 을 되 돌려 줍 니 다.
public interface Predicate {

    /**
     * Evaluates this predicate on the given argument.
     *
     * @param t the input argument
     * @return {@code true} if the input argument matches the predicate,
     * otherwise {@code false}
     */
    boolean test(T t);

인터페이스 설명도:
T - predicate - boolean Predicate 는 하나의 범례 형식 매개 변수 만 있 고 Lambda 표현 식 은 이 인 터 페 이 스 를 실현 하기 때문에 단일 매개 변 수 는 Integer 로 추정 된다.

좋은 웹페이지 즐겨찾기