[Java] Java8과 Lambda

GilLog·2021년 6월 16일
0

ModernJavaInAction

목록 보기
7/7

🙆‍♂️ import 🙇‍♂️

Modern Java in Action


Lambda

Java 8에서는 기명 메소드(Named Method)일급 값(일급 시민)으로 취급할 뿐 아니라,
Lambda 또는 익명 함수(Anonymous Functions)를 포함하여 함수도 값으로 취급할 수 있다.

예를 들면 (int x) -> x + 1x라는 인수로 호출할 경우 해당 인수에 1을 더한 값을 반환하는 동작을 수행하도록 코드를 구현할 수 있다.

기존에 참조할 만한 클래스나 메소드가 없을 경우 새로운 Lambda 문법을 이용간결하고 즉각적으로 코드 구현이 가능한 것이다.

Lambda 문법 형식으로 구현된 ProgramFunctional Programming,

Function을 일급 값(일급 시민)으로 넘겨주는 Program을 구현한다 라고 표현한다.

이를 코드로 살펴보면 아래 예시와 같다.

// Java 8 이전
File[] hiddenFiles = new File(".").listFiles(new FileFilter() {
	public boolean accept(File file) {
    	return file.isHidden();
    }
});

// Java 8 이후
File[] hiddenFiles = new File(".").listFiles(File::isHidden);

위 코드 예시 처럼 Java 8 이후 부터는,

메소드 참조(::) 문법을 이용직접 함수(isHidden())를 메소드(listFiles())로 전달 할 수 있다.

profile
🚀 기록보단 길록을 20.10 ~ 22.02 ⭐ Move To : https://gil-log.github.io/

0개의 댓글