728x90
반응형
- 람다식
- 함수(메소드)를 간단한 '식(expression)'으로 표현하는 방법
- (타입 매개변수, ...) -> { 실행문; ... }
- 이름없는 익명함수를 생성하는 식
- 함수(메소드)를 간단한 '식(expression)'으로 표현하는 방법
(a)-> { System.out.println(a); }
//다음과 같이 쓸 수 있다.
a->System.out.println(a)
(x,y) -> { return x+y; };
//다음과 같이 쓸 수 있다.
(x,y) -> x+y
- 하나의 매개변수만 있는 경우, 괄호()를 생략할 수 있다.
- 하나의 실행문만 있는 경우(블럭 안 문장이 하나), 중괄호{}와 ;를 생략할 수 있다.
- 반환값이 있는 경우, return문을 생략할 수 있다.
- 매개변수 타입은 대부분 생략 가능
- 함수적 인터페이스
- 람다식은 객체의 선언과 생성을 동시에 하는 익명객체이다. 이 람다식(익명객체)을 다루기 위한 참조변수가 필요한데, 이 참조변수는 무슨 타입일까? → 하나의 추상메소드가 선언된 함수적 인터페이스가 람다식의 타겟타입이 될 수 있다.
@FunctionalInterface
public interface MyFuncInterface{
public void method(); //추상메소드
}
//인터페이스 변수 = 람다식;
MyFuncInterface fi = () -> {
String str="method call";
System.out.println(str);
};
fi.method();
- @FunctionalInterface 어노테이션: 인터페이스 선언할때, 두개이상의 추상메소드가 선언되지않도록 체킹해준다.
/*매개변수 있는 함수적 인터페이스*/
@FunctionalInterface
public interface MyFuncInterface{
public void method(int x);
}
/*
MyFuncInterface fi = (x,y) -> {
return x+y;
}
*/
MyFuncInterface fi = (x,y) -> x+y;
- 함수적 인터페이스 타입의 참조변수로 람다식을 참조할 수 있다. 단, 함수적 인터페이스의 메소드와 람다식의 매개변수 개수와 반환타입이 일치해야 한다.
int result = fi.method(2,5); //7
//실제로는 람다식(익명함수)이 호출된다
- 람다식이 대입된 인터페이스의 참조변수는 method()를 호출할 수 있다.
728x90
반응형
'Java Tutorial' 카테고리의 다른 글
[Java] 예외 처리 (0) | 2023.07.02 |
---|---|
[Java 필수 기초 지식] 클래스 (생성자, 필드, 메소드) (0) | 2023.06.06 |
[Java] Set컬렉션 (0) | 2023.02.19 |
[Java] List컬렉션 (0) | 2023.02.18 |
[Java] 컬렉션 프레임워크 (Collection Framework) (0) | 2023.02.16 |