람다식

제로·2023년 9월 6일
0

Java basic

목록 보기
44/45
post-custom-banner

1. 람다식

  • 자바에서 함수형 프로그래밍을 구현하는 방식
  • 자바 8부터 지원
  • 클래스를 생성하지 않고 함수의 호출만으로 기능을 수행
  • 순수 함수를 구현하고 호출함으로써 외부 자료에 부수적인 영향을 주지 않고 매개변수만을 사용하도록 만든 함수
  • 입력받은 자료를 기반으로 수행되고 외부에 영향을 미치지 않으므로 병렬처리등에 가능
  • 안정적이고 확장성 있는 프로그래밍 방식
ex) 
## 기존 표현
int add(int x, int y) {
	return x+y;
}

## 람다식 표현
(int x, int y) -> {return x+y;}

2. 람다식 문법

  • 매개변수가 하나인 경우 자료형과 괄호 생략 가능
str -> {System.out.print(str);}
  • 매개변수가 두 개인 경우 괄호를 생략할 수 없음
x,y->{System.out.print(x+y);} // 잘못됌
  • 중괄호 안의 구현부가 한 문장인 경우 중괄호 생략
str -> System.out.print(str);
  • 중괄호 안의 구현부가 한 문장이라도 return 문은 중괄호 생략 불가
str -> return str.length(); // 잘못됌
  • 중괄호 안의 구현부가 반환문 하나라면 return과 중괄호 모두 생략
(x,y) -> x+y
str -> str.length()

3. 함수형 인터페이스

  • MyNumber.java
    ;람다식을 사용하기 위한 인터페이스
    ; 메서드를 하나 이상 선언하면 구현부에서 컴파일 에러를 발생
    ; 해당 파일에 @FunctionalInterface 선언시는 이 파일에서 발생

  • TestMyNumber.java
    ; 내부적으로는 익명클래스가 생성되고 getMaxNumber 메서드에 대한 implement가 구현된 것이다.

4. 다양한 표현방법


1) 인터페이스를 생성하고 이를 인터페이스로 구현하여 메서드를 실행
2) 인터페이스 객체를 파라미터로 받는 메서드를 선언하여 해당 메서드 안에서 인터페이스를 구현
3) return 데이터가 있는 람다식에 대한 구현

profile
아자아자 화이팅
post-custom-banner

0개의 댓글