Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

공부하는 블로그

[Java 공부] 람다식 본문

Java 공부

[Java 공부] 람다식

동성만능크리너 2024. 7. 31. 20:54

Java는 함수형 프로그래밍을 위해 Java 8 부터 람다식을 지원한다.

람다식은 함수 역할을 하는 매개변수를 가진 중괄호 블록이다.

데이터 처리부가 람다식을 처리하는 과정

 

데이터 처리부는 제공된 함수의 입력값으로 데이터를 넣고, 함수에 정의된 처리 내용을 실행하는데, 이처럼 람다식을 제공하면 데이터 처리부에서 데이터를 매개 변수에 대입하고, 중괄호를 실행시켜 처리한다.

람다식 : (매개변수, …) -> {처리 내용}

 

Java는 람다식을 익명 구현 객체로 변환한다.

 

익명 구현 객체란? 

더보기
이름이 없는 클래스를 의미하며, 한 번만 사용할 목적으로 즉석에서 클래스 선언과 인스턴스 생성을 동시에 하는 것, 보통 한 번만 사용되는 특정 기능을 구현할 때 편리하다.
new 인터페이스() {
//필드
//메소드
}

 

중괄호 블록 안의 필드와 메소드는 중괄호 블록 안에서만 사용할 수 있다.

>>익명 구현 객체는 인터페이스 타입에 대입되므로, 인터페이스 타입에 선언된 멤버만 접근할 수 있기 때문이다.

익명 클래스는 클래스 이름이 없는 대신, 클래스의 인스턴스를 변수에 할당하여 사용할 수 있다는 점에서 익명이라고 불린다.

인터페이스의 익명 구현 객체를 람다식으로 표현하려면 인터페이스가 단 하나의 추상 메소드만 가져야 한다.

인터페이스가 단 하나의 추상 메소드를 가질 때, 이를 함수형 인터페이스라고 한다. 인터페이스가 함수형 인터페이스임을 보장하기 위해서는 @FunctionalInterface 어노테이션을 붙이면 된다.

 

람다식 작성하기

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

 

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

 

1. 메서드의 이름과 반환타입을 제거하고 ‘->’를 블록{} 앞에 추가한다.

2. 반환값이 있는 경우, 식이나 값만 적고 return 문 생략 가능(끝에 ‘;’ 안 붙임)

3. 매개변수의 타입이 추론 가능하면 생략가능(대부분의 경우 생략 가능)

 

 

'Java 공부' 카테고리의 다른 글

[Java 공부] 스트림  (0) 2024.08.01
[Java 공부]함수형 프로그래밍  (0) 2024.07.31
[Java 공부] Static과 Final에 대해  (0) 2024.07.29