개발 공부

Java 람다 본문

Java

Java 람다

hyecozy 2022. 7. 28. 17:35

람다식 (Lambda Expression)

- 함수(메서드)를 간단한 식으로 표현하는 방법

int max(int a, int b){
	return a > b ? a : b;
}
//를 람다식으로 표현하면 아래처럼 된다

(a, b) -> a > b ? a : b

 

- 함수와 메서드의 차이

근본적으로는 동일하나 함수는 일반적 용어이자 클래스에 독립적이고

메서드는 객체지향개념 용어이며 클래스에 종속적

 

- 람다식은 익명 객체이다.

(a, b) -> a > b ? a : b

//를 제대로 쓰면

new Object() {
	int max(int a, int b) {
    	return a > b ? a : b;
    }
}

객체의 선언과 생성을 동시에 한 것

 

- 람다식(익명 객체)을 다루기 위한 참조변수가 필요하다

Object obj = new Object(){
	int max(int a, int b) {
    	return a > b ? a : b;
    }
};

그런데 이와 같이 참조변수를 Object로 하면, max라는 메서드를 쓸 수 없다 (Object 클래스 안에는 max()가 없음)

람다식은 익명객체이므로 참조변수는 필요하고, 참조변수의 타입은 Object로 할 수 없고 과연 어떻게 해야 max()를 쓸 수 있을까

 

이때 나오는 개념이 함수형 인터페이스이다

 

 

참고 ; https://youtu.be/3wnmgM4qK30

'Java' 카테고리의 다른 글

Stream  (0) 2022.11.08
옵셔널(Optional) : null 체크 (수정 중)  (0) 2022.05.18
제네릭, Comparable 인터페이스  (0) 2022.05.15
Java Day15 : 컬렉션 프레임워크  (0) 2022.01.19
Java Day14 : 예외 처리, Wrapper 클래스  (0) 2022.01.18
Comments