자바 의 Lambda 표현 식 에 대한 간단 한 설명

3745 단어 JavaLambda표현 식
람 다 를 왜 써 요?
하나의 인터페이스 에 대해 매우 간결 하 게 실현 할 수 있다.
Lambda 인터페이스 에 대한 요구?
인터페이스 에서 정의 하 는 추상 적 인 방법 은 하나 밖 에 없다.
전통 적 으로 하나의 인 터 페 이 스 를 실현 하려 면 이렇게 해 야 한다.
방법 1:

//     ,             
class Test implements IntrfacefN {
    @Override
    public void getUser(int a, int b) {
    }
}
// @FunctionalInterface     :     ,     ,     ,               !!! 
@FunctionalInterface
interface IntrfacefN{
    public void getUser(int a, int b);
}
방법 2:
익명 식

public class Lamda {
    public static void main(String[] args) {
        //          
        IntrfacefN intrfacefN1 = new IntrfacefN(){
            @Override
            public void getUser(int a, int b) {
                
            }
        };
    }
}
Lambda->매개 변수 와 방법 체 에 만 관심 을 가 집 니 다(반환 값 형식 은 쓸 필요 가 없고 형식 은 쓸 필요 가 없습니다)

public class Lamda {
    public static void main(String[] args) {
        //     ,             !
        IntrfacefN intrfacefN = (int a, int b) -> System.out.println(a-b);
        intrfacefN.getUser(1, 2);
    }
}

부정 참

@FunctionalInterface
interface IntrfacefN{
    public void getUser(int... a);
}
public class Lamda {
    public static void main(String[] args) {
        IntrfacefN intrfacefN = (int ...a) -> {
            for (int i = 0; i < a.length; i ++) {
                System.out.println(a[i]);
            }
        };
        intrfacefN.getUser(1, 2);
    }
}

생략 가능 한 부분
매개 변수 유형

IntrfacefN intrfacefN = (a, b) -> System.out.println(a-b);
소괄호
전 제 는 하나의 매개 변수 상황 만 있 습 니 다.

IntrfacefN intrfacefN = a -> System.out.println(a);
방법 대괄호
방법 체 는 코드 가 한 마디 밖 에 없다.

IntrfacefN intrfacefN = (a, b) -> System.out.println(a-b);
복귀
괄호 안에 반환 문 이 하나 밖 에 없다 면 return 도 생략 할 수 있 습 니 다.

IntrfacefN intrfacefN = (a, b) -> {
    return a-b
};
//       :
IntrfacefN intrfacefN = (a, b) -> a-b;
고급 부분
방법의 인용
Lambda 표현 식 의 실현 을 실현 한 방법 으로 가리 키 며,이렇게 하면 공공 논리 부분의 분리 에 해당 하 며,재 활용 을 실현 합 니 다.

public class Lamda {
    public static void main(String[] args) {
        IntrfacefN intrfacefN = (a, b) -> add(a, b);
        intrfacefN.getUser(1, 2);
    }
    public static void add(int a, int b) {
        System.out.println(a+b);
    }
}
 
@FunctionalInterface
interface IntrfacefN{
    public void getUser(int a, int b);
}
그리고 더욱 간결 한 실현:
방법 예속 자:문법-방법 예속 자:방법 명
보충 하:이 방법 예속 자 는 주로 방법 이 유형 인지 대상 방법 인지,유형 이 라면- 방법 종류:방법 명 ,대상 방법 이 라면-new 방법 종류:방법 명

public class Lamda {
    public static void main(String[] args) {
        IntrfacefN intrfacefN = Lamda::add;
        intrfacefN.getUser(1, 2);
    }
    public static void add(int a, int b) {
        System.out.println(a+b);
    }
}
 
@FunctionalInterface
interface IntrfacefN{
    public void getUser(int a, int b);
}
자바 의 Lambda 표현 식 과 관련 된 작업 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 자바 Lambda 표현 식 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기