Open honggyu92 opened 7 years ago
람다식이란 식별자없이 실행 가능한 함수 표현식
기존의 불필요한 코드를 줄이고 가독성을 향상시키는 것이 목적
( parameters ) -> expression body
( parameters ) -> { expressin body }
() -> { expression body }
() -> expression body
"Hello world"를 출력하는 쓰레드 만들기
기존 방식
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Hello World");
}
}).start();
람다식
new Thread(()->{
System.out.println("Hello World");
}).start();
인자가 없기 때문에 ()
로 작성하고 실제로 동작할 코드를 ->{ ... }
의 내부에 작성
() -> { expression body }
구조
JDK의 기존 날짜, 시간 클래스의 문제점
calendar.add(Calendar.SECOND.2); // 컴파일 에러 없음
calendar.set(1582,Calendar.OCTOBER,4); // 실제로는 9
새 날짜 API
JAVA 8 이전
public interface TestInterface {
public void action {}{
System.out.println("Test");
}
}
Default method 지원
public interface Student {
default void readBook() {
System.out.println("reading book");
}
}
public class GoSam implements Student {
public static void main(String arg[]) {
GoSam gosam = new GoSam();
gosam.readBook();
}
}
Java 8의 기능