더북(TheBook)

람다 표현식의 파라미터 타입을 추정할 수 있는 경우에는 타입을 생략할 수 있다. 예를 들어보자.


Comparator<String> comp

= (first, second) // (String first, String second)와 같다.

-> Integer.compare(first.length(), second.length());


 

여기서 람다 표현식을 문자열 비교자에 대입하기 때문에, 컴파일러는 firstsecond가 문자열이라고 추정할 수 있다(1.3절에서 이 대입에 관해 더 자세히 알아볼 것이다).

메서드에서 추정되는 타입 한 개를 파라미터로 받으면 괄호를 생략할 수 있다.


EventHandler<ActionEvent> listener = event ->

System.out.println("Thanks for clicking!");

// (event) -> 또는 (ActionEvent event) -> 대신 사용한다.


 

<Note>

메서드 파라미터와 마찬가지 방식으로 람다 파라미터에 애너테이션annotation이나 final 수정자를 붙일 수 있다.

 

(final String name) -> ...

(@NonNull String name) -> ...

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.