Closed glenn-syj closed 2 weeks ago
저는 서로 다른 함수형 인터페이스를 같은 위치의 인수로 받는 메서드에 대해 집중하여 탐구하였지만 IntPredicate에 대해서는 이러한 함수형 인터페이스가 존재하는지만 인식하고 넘어갔습니다.
하지만 glenn-syj님께서 IntPredicate의 추상 메서드 및 디폴트 메서드에 대해 정리하고, 그 쓰임새를 알려주어 IntPredicate에 대해 알 수 있게 되었습니다.
비록 보여주신 예제에서는 디폴트 메서드인 and 에 대해서만 사용하는 것이 나왔지만, 같은 방식으로 or과 isEqual 또한 사용할 수 있음을 알게 되어 쉽게 IntPredicate에 대해 이해하게 되었습니다.
based on: #183 by @undeadtimo
들어가며
글을 읽으면서, 함수형 인터페이스에 대해서 조금은 알게 되었는데요. 사실 IntPredicate에 대해서, 대략적으로 Int 자료형에 대한 판단이 이루어지는가? 정도만 추측하고 넘어갔었는데요. 이번에는 간단하게 IntPredicate에 대해 알아보려고 합니다.
함수형 인터페이스: IntPredicate
IntPredicate는 함수형 인터페이스의 대표적인 예시인데요. 함수형 인터페이스는 단 하나의 추상 메서드만을 가집니다. IntPredicate도 마찬가지입니다. 간단하게 코드를 살펴봅시다.
default
가 붙어있지 않고, boolean을 반환하는 test 메소드가 추상메서드입니다. 다른 메서드들은 디폴트 메서드입니다. and와 or은 논리연산을 진행할 수 있도록 돕고, isEqual은 일치 여부를 확인합니다. 대표적으로, and를 이용하는 코드만 우선적으로 살펴보겠습니다. (chatGPT에 의해 생성된 코드입니다)단순히 조건문을 나열하거나 boolean값만을 변수에 할당하거나, 단순히 int 자료형의 검사를 위해 클래스 메서드를 만들지 않아도 됩니다.
나가며
이번 장에서는 내용도 내용이지만, 이펙티브 자바에서 내내 등장하던 함수형 인터페이스의 정의와 쓰임을 엿볼 수 있어 좋았습니다.