백기선 강사님의 더 자바 8 인프런 강의 참조
함수형 인터페이스 (Functional Interface)
- ● 추상 메소드를 딱 하나만 가지고 있는 인터페이스
- ● SAM (Single Abstract Method) 인터페이스
- ● @FuncationInterface 애노테이션을 가지고 있는 인터페이스
@FunctionalInterface
public interface RunSomething {
void doIt();
static void print(){
System.out.println(1);
}
}
추상 메소드가 딱하나다 스태틱은 몇개가 있던 추상메소드가 하나면된다.
기존 인터페이스를 구현하려면 익명오브젝트로 구현했었다.
RunSomething runSomething2 = new RunSomething() {
@Override
public void doIt() {
System.out.println(1);
}
};
runSomething2.doIt();
하지만 함수형인터페이스일 경우 람다표현식으로 표현이 가능하게됨.
- 람다 표현식 (Lambda Expressions)
- ● 함수형 인터페이스의 인스턴스를 만드는 방법으로 쓰일 수 있다.
- ● 코드 간략화
- ● 메소드 매개변수, 리턴 타입, 변수로 만들어 사용할 수도 있다.
public class Foo {
public static void main(String[] args) {
RunSomething runSomething = () -> {
System.out.println(1);
System.out.println(1111);
};
runSomething.doIt();
}
}
'Java' 카테고리의 다른 글
Enum (0) | 2023.10.27 |
---|---|
Java Stream (0) | 2023.04.20 |
람다 메소드 레퍼런스 (0) | 2023.04.13 |
String == 비교와 equals비교 (0) | 2023.02.16 |