![[인프런 워밍업 클럽 0기] BE 3일차 과제](https://cdn.inflearn.com/public/files/blogs/4a88c074-e435-456a-84a0-8ff7e3344785/comm-warm-up-page-main.png)
[인프런 워밍업 클럽 0기] BE 3일차 과제
2024.02.21
Java의 람다식
// 함수형 인터페이스
@FunctionalInterface
public interface MyFunctionalInterface {
void sayHi(String name);
}
public class MyLambdaExpression1 {
public static void main(String[] args) {
// 람다식으로 함수형 인터페이스 구현
MyFunctionalInterface greeting = (String name) -> System.out.println("Hi, " + name + "!");
// 함수형 인터페이스의 메소드 호출
greeting.sayHi("Son");
}
}
람다식은 함수를 하나의 식으로 표현한 것입니다. 람다식으로 표현된 함수는 다른 함수의 매개값으로 전달하거나 반환값으로 사용할 수 있습니다. Java에선 버전 8부터 도입되었으며 함수형 인터페이스의 인스턴스를 생성하는 용도로 쓰입니다.
함수형 인터페이스
함수형 인터페이스는 추상 메서드를 단 하나만 가지고 있는 인터페이스를 말합니다. Java에선
@FunctionalInterface
로 함수형 인터페이스임을 표시합니다. 함수형 인터페이스는 람다식을 사용해 구현할 수 있으며, 이를 통해 함수를 변수처럼 선언할 수 있습니다.
람다식과 익명 클래스
public class MyLambdaExpression2 {
public static void main(String[] args) {
Runnable runnableByAnonymous = new Runnable() {
@Override
public void run() {
System.out.println("익명 클래스로 구현했습니다");
}
};
Runnable runnableByLambda = () -> {
System.out.println("람다식으로 구현했습니다");
};
}
}
익명 클래스는 한 번만 사용되고 버려지기 때문에 재사용하지 않는 클래스를 만들 때 유용하지만, 구현부를 작성하는 게 번거롭습니다. 람다식을 이용하면 익명 클래스의 구현 과정을 보다 간결하게 나타낼 수 있습니다.
람다식 문법
람다식은 매개변수, 화살표 (->
), 실행문으로 구성됩니다.
// 매개변수 하나
int number -> number + 10;
// 매개변수 여러 개
(int x, int y) -> System.out.println("x:" + x + " / " + "y:" + y);
// 매개변수 없음
() -> System.out.println("히히");
매개변수가 하나만 있는 경우 괄호를 생략할 수 있습니다.
// return문만 있는 경우
(int x, int y) -> {return x + y;}
(int x, int y) -> x + y; // 동일하게 작동
// 실행문이 한 줄만 있는 경우
(String name) -> {System.out.println("Hi, " + name);}
(String name) -> System.out.println("Hi, " + name); // 동일하게 작동
실행문이 복잡하지 않다면 중괄호를 생략할 수 있습니다.
댓글을 작성해보세요.