람다식(2)
-
함수형 인터페이스란, 자바8에서 지원하는 함수형 인터페이스
함수형 인터페이스란? 인터페이스에 추상메서드 하나만 선언되어 있는 인터페이스. (두개거나 없으면 함수형 인터페이스가 아니다.) @FunctionalInterface 애노테이션을 지원하여 해당 인터페이스에 추가하면 두 개 이상의 추상 메서드가 선언되면 컴파일 에러가 나도록 지원한다. @java.lang.FunctionalInterface public interface FunctionalInterface { int doIt(int input); } 함수형 인터페이스가 생겨난 배경은? 왜 이런 특수한 형태의 인터페이스가 생겨났을까? 바로 람다식을 지원하기 위해서이다. 생각해보면 람다식이 추상메서드를 구현할때 어떤 메서드인지, 메서드명을 명시하지 않는다. 이는 람다식은 무조건 함수형인터페이스인 경우에만 사용할 ..
2021.01.14 -
자바8 람다식의 사용법과 장단점.
자바8의 람다식이란? 함수형 인터페이스를 구현하는 익명객체를 작성하는 간결해진 작성법. 익명객체를 구현해야하는 하나의 메서드를 간결해진 식으로 표현한다. 람다식 사용법 (매개변수) -> {실행문} 매개변수가 하나일 경우 () 소괄호 생략가능 i -> {i+1} 실행문이 한 줄일 경우 {} 중괄호 생략가능 i -> i+1 매개변수가 두개일 경우 () 소괄호 안에 작성하고 콤마로 구분 (i,j) -> i+j 실행문이 바로 return하는 문장이면 return 생략가능 i -> i+10 람다식의 장점 코드가 간결해짐. 람다식의 단점 단점은 없다.(주관적인 의견) 어떤 사람들은 람다식의 성능상의 문제, 가독성의 문제를 따지는데 성능상의 문제는 정확히 말하면 람다식의 문제가 아니라 람다식으로 표현한 그 실행문의 ..
2021.01.12