본문 바로가기

기초 지식/Java

Java 1.8 Lambda Expression (람다 표현식)

Lambda Expression (람다 표현식)

- 자바 1.8 부터 도입된 함수 지향적 표현 방식이다.

- 간단하게 식별자없이 실행 가능한 함수표현이다.

- 병렬처리, 이벤트 지향적 프로그래밍에 적합하다.

 

사용방법

(매개변수, ...) -> { 실행문 ... }
//람다식 x
interface Phone{
	String getName(String series, String version);
}

class Main {
    public void mainExample() {
    	Person person = new Person();
        person.buyPhone(new Phone() {
        	public String getName(String series, String version) {
            	return series + version;
            }
        });
    }
    
    class Person {
    	public void buyPhone(Phone phone) {
        	System.out.println("New Phone! : " + phone.getName("Galaxy", "S20"));	
    	}
    }
}




//람다식 o
interface Phone{
	String getName(String series, String version);
}

class Main {
    public void mainExample() {
    	Person person = new Person();
        person.buyPhone((series, version) -> series + version); //람다식 사용
    }
    
    class Person {
    	public void buyPhone(Phone phone) {
        	System.out.println("New Phone! : " + phone.getName("Galaxy", "S20"));	
	}
    }
}

 

장점

  • 코드를 간결하게 만들 수 있다
  • 병렬프로그래밍에 용이하다.

단점

  • 재사용을 많이 하는 함수를 람다로 만들면 코드가 더 지저분 해질 수 있다.
  • 재귀에 사용하기 부적합하다.
  • 디버깅이 어렵다.
반응형

'기초 지식 > Java' 카테고리의 다른 글

Java 1.8 Optional  (0) 2021.03.28
Java 1.8 Default Method  (0) 2021.03.02
Java 1.8 Stream 정리  (0) 2020.10.27
Java 1.8 method reference (메소드 레퍼런스)  (0) 2020.10.21
Java 각 버전의 특징들 (~JAVA21)  (0) 2020.10.15