헬린코린이

[JAVA] 람다식 본문

Programming/Java

[JAVA] 람다식

HCD 2023. 5. 11. 22:58

람다식이란 함수를 하나의 식으로 표현한 것입니다.
함수를 람다식으로 표현하면 메소드의 이름이 필요 없기 때문에, 람다식은 익명함수의 한 종류라고 볼 수 있다.

 

람다식이 등장하게 된 이유는 불필요한 코드를 줄이고, 가독성을 높이기 위함입니다.
함수의 인터페이스의 인스턴스를 생성하여 함수를 변수처럼 선언하는 람다식에서는 메소드의 이름이 

불필요하다고 여겨져서 이를 사용하지 않습니다.

 

특징으로는

- 람다식 내에서 사용되는 지역변수는 final이 붙지 않아도 상수로 간주되고
- 람다식으로 선언된 변수명은 다른 변수명과 중복될 수 없습니다.

 

장점으로는

- 코드를 간결하게 만들 수 있다.
- 식에 개발자의 의도가 명확히 드러나 가독성이 높아진다.

단점으로는

- 람다를 사용하면서 만든 무명함수는 재사용이 불가능합니다.
- 디버깅이 어렵다.
- 람다를 남발하면 비슷한 함수가 중복 생성되어 코드가 지저분해질 수 있다.

 

결국 무조건 람다가 좋다는 보장은 없습니다. 상황에 따라 필요에 맞는 방법을 사용하는 것이 중요하다~

 

그럼 람다식이 뭐냐

이런 겁니다

//기존의 방식에서는
public String hello(){
	return "Hello World";
}

// 이렇게 줄인 겁니다.
() -> "Hello World";

 

간단한 예제를 보겠습니다.

public class test {
	public static void main(String[] args) {
		hoho ho = () -> {
			System.out.println("hihi2");
		};
		ho.hihi();
	}
}

@FunctionalInterface
interface hoho{
	public void hihi();
}

@FunctionalInterface이란
- 구현해야 할 추상 메소드가 하나만 정의된 인터페이스를 가리킵니다.
- 이렇게 명시된 함수형 인터페이스에 두 개 이상의 메소드가 선언되면 오류를 발생시킵니다

 

함수형 인터페이스란
- 자바는 기본적으로 객체지향 언어이기 때문에 순수함수와 일반 함수를 다르게 취급하고 있다.
- 자바에서는 이를 구분하기 위해 함수형 인터페이스가 등장하게 되었다.

 

함수형 인터페이스는 다음번에 다뤄보겠다

 

 

 

Comments