○Lambda Expression

 ▷식별자 없이 실행 가능한 함수

 ▷코드에 직접 함수를 적어 이를 호출하는 방식

 ▷주로 event listeners / callbacks에 사용

 

 ▶Functional Interface

  ▷단 하나의 abstract 메소드만을 가진 Interface로 정의됨.

  ▷주로 event listener들이 이런 형식으로 만들어짐.

 

  ▶Lambda Expression 이전의 표현 방법

   ▷Interface 객체에 함수를 따로 정의할 필요가 있었음.

 

  ▶Lambda Expression을 통한 Functional Interface

   ▷Functional Interface를 간단하게 표현 가능함.

 

 ▶Lambda Expression 표기

  ▷(매개변수, ...) -> { 실행문 ... }

 

 ▶generic 사용

  ▷Lambda Expression을 통해 Generic Parameter를 자동으로 지정 가능하다.

 

  

  ▶Parameter: 실행문에서 사용할 매개 변수들. 

   ▷Single Method Interface에서 사용하는 경우, 해당 Method에 맞는 매개변수를 넣어야함.

   ▷Type의 추론이 가능한 경우, 생략 가능함.

   ▷매개변수가 0개인경우 ()를, 여러 개인 경우 ,를 통해 구분한다.

 

  ▶Function Body: 실행할 함수들

   ▷->를 통해 Function Body를 특정한다.

   ▷여러 줄일 경우에는 {}를 통해 묶는다.

 

  ▶Return: 반환할 값

   ▷Function Body에 return문을 추가하면, 반환할 값을 지정할 수 있다.

   ▷return값을 계산하기 위한 한 줄의 간단한 식일 경우, return을 생략 가능하다.

 

 ▶외부 변수의 사용 (Variable Capture)

  ▷외부의 변수에 Access하여 값을 읽어올 수 있다.

  ▷읽은 시점을 기준으로 고정된다. (Capture)

  ▷effetively final인 변수만을 가져올 수 있다.

   ▷effectively final: 유사 final, 해당 변수가 선언 후에 바뀌지 않으면 effectively final이며, final 취급을 받는다.

 

  ▷Local Varable: 지역 변수를 가져올 수 있다.

 

  ▷Instance Variable: lambda를 만든 객체를 가져올 수 있다.

 

  ▷Static Variable: Static 변수를 가져올 수 있다.

 

 

 ▶Method Reference

  ▷하나의 메소드를 호출하는 간단한 lambda expression은 Method를 reference해서 더 간단히 표현 가능하다.

'컴퓨터 언어 > java' 카테고리의 다른 글

Process  (0) 2020.11.23
Exception  (0) 2020.11.19
Collection  (0) 2020.11.16
Interface  (0) 2020.11.16
Inheritance  (0) 2020.11.14

+ Recent posts