함수형 인터페이스와 람다 표현식
함수형 인터페이스 Functional Interface
- 추상 메소드를 딱 하나만 가지고 있는 인터페이스
- SAM (Single Abstract Method) 인터페이스
- @FuncationInterface 애노테이션을 가지고 있는 인터페이스
람다 표현식 Lambda Expressions
- 함수형 인터페이스의 인스턴스를 만드는 방법으로 사용이 가능하다
- 코드를 줄일 수 있다
- 메소드 매개변수, 리턴 타입, 변수로 만들어 사용할 수도 있다.
자바에서 함수형 프로그래밍
-
함수를 First class object (일급객체)로 사용할 수 있다.
-
순수 함수 Pure function
- 사이드 이팩트가 없다 (함수 밖에 있는 값을 변경하지 않는다.)
- 상태가 없다 (함수 밖에 있는 값을 사용하지 않는다.) -
고차 함수 Higher-Order Function
- 함수가 함수를 매개변수로 받을 수 있고 함수를 리턴할 수도 있다. -
불변성
예제
인터페이스
public interface IsInter {
abstract int isNum(int);
}
기존 방식의 인터페이스 활용
IsInter isinter = new IsInter() {
@Override
public int isNum(int number) {
return number + 10;
};
};
System.out.println(isinter.isNum(5));
람다식 적용 인터페이스 활용
IsInter isinter3 = (number) -> number + 10;
IsInter isinter4 = (number) -> {
if (number % 2 == 0)
System.out.println("this is odd");
return number;
};
System.out.println(isinter3.isNum(5));
System.out.println(isinter4.isNum(5));
Author And Source
이 문제에 관하여(함수형 인터페이스와 람다 표현식), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dnstlr2933/함수형-인터페이스와-람다-표현식저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)