728x90
< 람다 표현식 개요 >
- 람다 표현식은 이름이 없는 익명 함수를 의미
- Java에서 함수형 코드를 사용가능케 함.
- 람다 표현식을 사용하여 명확하게 표현 가능
< 람다 표현식의 특징>
- 익명 : 메소드와 달리 익명으로 표현하며 코드가 간결해짐
- 함수 : 람다는 메소드처럼 특정 클래스에 종속되지 않기 때문에 함수라고 부름 다만 일부 예외 리스트를 포함함
- 전달 : 람다 표현식을 메소드 인수로 전달하거나 변수로 저장하는 것은 불가능
- 간결성 : 익명 클래스에서와 같은 코드를 계속해서 구현할 필요가 없음.
< 람다 구성 >
- 파라미터 리스트 : *** 메서드의 파라미터() : (int a1, int a2, int a3...)
- 화살표 : 화살표 ( -> )는 람다의 바디와 파라미터 리스트를 구분
- 람다의 바디 : 람다의 반환 값에 해당하는 표현식
<예제1>
package pack2;
public class ThreadClass {
public void sendMail(String msg) {
System.out.println("메일 전송: " + msg);
}
public ThreadClass() {
method1();
method2();
method3();
}
void method1() {
// 전통적 방식
new Thread(new Runnable() {
@Override
public void run() {
sendMail("method1");
}
}).start();
}
// 람다 사용
void method2() {
Thread thread = new Thread(() -> sendMail("method2"));
thread.start();
}
void method3() {
new Thread(() -> sendMail("method3")).start();
}
public static void main(String[] args) {
new ThreadClass();
}
}
< 예제2 >
package pack;
import javax.swing.JButton;
import javax.swing.JFrame;
public class ButtonLambda extends JFrame{
public ButtonLambda() {
super("람다 적용 연습");
setLayout(null); // 레이아웃을 쓰지 않겠다.
//1번째 버튼
JButton btn = new JButton("버튼1");
btn.setBounds(10,50,200,50);
add(btn);
setBounds(200,200,300,400);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btn.addActionListener(arg0 -> System.out.println("버튼을 클릭"));
JButton btn2 = new JButton("버튼2");
btn2.setBounds(10,150,200,50);
add(btn2);
setBounds(200,200,300,400);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btn2.addActionListener(arg0 -> System.out.println("버튼을 클릭"));
}
public static void main(String[] args) {
new ButtonLambda();
}
}
본 포스팅은 IT 교육기관인 KIC 캠퍼스의 지원을 받은 리포트입니다.
혹시 잘못되거나 문제 소지시 댓글 남겨주시면 조치하겠습니다.
728x90
'DEV' 카테고리의 다른 글
JAVA Socket을 활용하여 간단한 통신하기 예제 (0) | 2018.01.26 |
---|---|
JAVA Socket을 활용한 html 읽어오기 예제 (0) | 2018.01.26 |
JAVA InetAddress 클래스를 활용한 IP 읽기 예제 (0) | 2018.01.26 |
JAVA 연산자, 조건문, 반복문 예제 (0) | 2018.01.24 |
JAVA 레코드 이동 예제 (0) | 2018.01.19 |
JAVA 기본 프레임 구조 예제 (0) | 2018.01.19 |