18.2 매개변수가 없는 람다식
1. 시작 버튼 누르기 🔘
매개변수가 없다는 것은 “외부에서 데이터를 받지 않고, 그냥 실행만 하면 된다”는 뜻입니다. 마치 엘리베이터의 열림 버튼이나 게임의 Start 버튼과 같습니다.
- 문법:
() -> { 실행문; }
2. 기본 문법
함수형 인터페이스의 추상 메소드에 매개변수가 없을 경우, 람다식은 빈 괄호 ()를 사용합니다.
// 1. 실행문이 여러 개인 경우: 중괄호 {} 필수!
() -> {
System.out.println("명령 1");
System.out.println("명령 2");
}
// 2. 실행문이 하나인 경우: 중괄호 {} 생략 가능 (권장)
() -> System.out.println("명령 1");
3. 예제: 버튼 클릭 이벤트
버튼을 클릭했을 때 어떤 동작을 할지 람다식으로 정의해보겠습니다.
함수형 인터페이스 정의
package ch18.sec02.exam02;
public class Button {
// 정적 멤버 인터페이스 (함수형 인터페이스)
@FunctionalInterface
public static interface ClickListener {
void onClick(); // 매개변수 없음
}
private ClickListener clickListener;
public void setClickListener(ClickListener clickListener) {
this.clickListener = clickListener;
}
public void click() {
this.clickListener.onClick();
}
}
실행 코드
package ch18.sec02.exam02;
public class ButtonExample {
public static void main(String[] args) {
Button btnOk = new Button();
// 1. 람다식 주입 (매개변수 없음)
btnOk.setClickListener(() -> {
System.out.println("Ok 버튼을 클릭했습니다.");
});
btnOk.click();
Button btnCancel = new Button();
// 2. 람다식 주입 (중괄호 생략)
btnCancel.setClickListener(() -> System.out.println("Cancel 버튼을 클릭했습니다."));
btnCancel.click();
}
}
실행 결과
Ok 버튼을 클릭했습니다.
Cancel 버튼을 클릭했습니다.
핵심: 매개변수가 없으면 빈 괄호
()를 꼭 써주세요.
서브목차