모종닷컴

자바 8 - 람다식 본문

Programming/JAVA

자바 8 - 람다식

모종 2018. 8. 19. 21:55
반응형

1. 람다식이란 무엇인가?


자바에서 함수적 프로그래밍을 위해 자바 8부터 람다식을 지원하게 되었다.


람다식을 사용함으로써 코드가 매우 간결해지고, 필터링을 통해 결과를 쉽게 집계할 수 있게 되었다.


람다식은 ()->{....};의 형식으로 괄호안에는 매개변수가, 중괄호 안에는 실행코드가 들어가게 된다.



2. 람다식은 인터페이스 변수에 대입이 가능하다.


람다식은 기본적으로 인터페이스의 익명 구현 객체를 생성하게 된다. 하지만 모든 인터페이스에 대하여 사용할 수는 없다. 두 개 이상의 


추상 메소드가 존재하는 인터페이스는 람다식을 이용하여 구현할 수 없다(오직 한 개의 메소드만 있는 인터페이스만 가능하다는 소리)



3. 람다식은 클래스의 필드 , 메소드 및 로컬 변수를 사용할 수 있다. 


클래스의 필드나 메소드의 경우 제약 없이 사용이 가능하지만, 로컬 변수는 제약이 있다. 로컬 변수 혹은 매개 변수를 읽는 것 까지는 가능


하지만 이 변수의 값들을 변경할 수 없다.



4. 표준 API의 함수적 인터페이스에 관하여 사용이 가능하다.


즉 하나의 메소드만을 가지고 있는 인터페이스 또한 익명 구현 객체로 표현이 가능하다는 소리이다. 



5. 람다식은 메소드를 참조할 수 있다.


예를 들어 두 개의 값을 더하는 람다식이라고 하면 (a,b)->{return a+b};라는 익명 구현 객체를 만들수도 있지만, Math::max; 라는 식으로도 


Math의 메소드를 참조할 수 있다.


참조할 때에도 법칙이 있다.


정적 메소드(static)를 참조하는 경우 [클래스 :: 메소드], 일반 메소드일 경우 [인스턴스 :: 메소드]로 표현이 가능하다.



6. 람다식은 생성자 참조도 가능하다


생성자를 참조할 경우에는 [클래스 :: new]의 형태로 기술한다 

반응형