본문 바로가기
728x90

함수형 인터페이스3

Item 42. 익명 클래스보다는 람다를 사용하라 예전에는 자바에서 함수 타입을 표현할 때 추상 메서드를 하나만 담은 인터페이스를 사용했고 이런 인터페이스의 인스턴스를 함수 객체(function object)라 해서, 특정 함수나 동작을 나타내는대 사용했다. 함수 객체를 만드는 방식으로는 익명 클래스를 주로 사용했다. 하지만 익명 클래스는 너무 길기 때문에 함수형 프로그래밍에 적합하지 않았다. 자바 8에 와서야 람다가 도입되 함수 객체를 람다를 통해 짧은 길이로도 만들 수 있게 되었다. 람다는 함수나 익명 클래스와 개념은 비슷하지만 코드는 훨신 간결하다. 람다의 매개변수와 반환값은 컴파일러가 타입 추론을 사용해 추론하기 때문에 통상적인 상황에서는 타입을 명시하지 않아도 된다. 그럼에도 타입을 명시해야 코드가 더 명확할 때에는 타입을 명시해야 한다. 람다.. 2022. 3. 12.
3장. 람다 표현식 동작 파라미터화를 이용하면 더 유연하고 재사용할 수 있는 코드를 만들 수 있다. 익명 클래스로 다양한 동작을 구현할 수 있지만 코드가 깔끔하지 않다. 깔끔하지 않다는 것은 실전에 적용하는 것을 막는 요소다. 그에 반해 람다는 익명 클래스처럼 이름이 없는 함수면서 메서드를 인수로 전달할 수 있고 코드 역시 깔끔하다. 이번 장에서는 람다에 대해 다룬다. 람다란 무엇인가? 람다 표현식은 메서드로 전달할 수 있는 익명 함수를 단순화한 것이다. 람다 표현식에는 이름은 없지만, 파라미터 리스트, 바디, 반환 형식, 예외 리스트를 가질 수 있다. 람다 특징은 다음과 같다. 1. 익명: 람다는 이름이 없다. 따라서 구현해야 할 코드에 대한 걱정이 준다. 2. 함수: 람다는 메서드처럼 특정 클래스에 종속되지 않기 때문에.. 2022. 2. 14.
함수형 인터페이스와 람다 표현식 함수형 인터페이스와 람다 표현식은 자바에서 함수형 프로그래밍을 할 수 있게 해주는 초석이다. 하지만 이들은 반드시 함수형 프로그래밍 만을 위해서 사용하라는 법은 없다. 함수형 인터페이스 추상 메서드가 하나만 존재하는 것이 함수형 인터페이스 이다. 1 2 3 4 public interface RunSomething { void doIt(); } cs 여기서 추상 메서드는 abstract가 생략되 있으므로 반드시 구현채를 구현해야 한다. 또 한 함수형 인터페이스는 default method, static method를 사용할 수 있다. 함수형 인터페이스를 구현할 때는 자바가 제공하는 @FunctionalInterface annotation을 사용한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 1.. 2021. 11. 20.
728x90