자바 의 Lambda 표현 식 에 대한 간단 한 설명
하나의 인터페이스 에 대해 매우 간결 하 게 실현 할 수 있다.
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 표현 식 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.