자바

자바 람다식 java Operator , Predicate 함수적 인터페이스

알통몬_ 2017. 3. 19. 20:11
반응형


안녕하세요 알통몬입니다.

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^

 


이전 포스팅에서  Consumer , Supplier, Function 함수적 인터페이스에 대해 공부했는데요.

2017/03/19 - [자바] - java 자바 람다식 Consumer , Supplier, Function 함수적 인터페이스


이번 포스팅에서는 Operator 와 Predicate 함수적 인터페이스에 대해 공부하겠씁니다.


1. Operator

매개 변수와 리턴값이 있는 applyXXX()를 가지고 있는데요.

메소드들은 매개값을 이용해 연산 수행 후 동일한 타입으로 리턴값을 제공합니다.


IntBinaryOperator 인터페이스를 타겟으로 하는 람다식

-->

IntBinaryOperator ibo = (a, b) -> { ...; return int 값; }

예제를 보겠습니다.


2. Predicate

매개변수와 boolean 리턴값이 있는 testXXX()를 가짐

매개값을 조사해 true or false를 리턴.


Predicate<T>를 타겟 타입으로 하는 람다식은 아래처럼 작성할 수 있습니다.

test() 는 매개값으로 T 객체 하나를 가지므로 람다식도 한 개의 매개 변수를 사용합니다.

그리고 test()의 리턴 타입이 boolean 이므로 람다식 중괄호 {}의 리턴값은 boolean이 됩니다.


아래 예제를 보면

T가 Student 타입이므로 t 매개변수 타입은 Student가 됩니다. t.getGender()는

 Student 객체의 getGender() 을 호출해서 "남" or "여"를 얻습니다. 

아래 코드는 String의 equals()을 이용해서 남학생만 true를 리턴합니다.

Predicate<Student> predi = t -> { return t.getGender().eqauls("남"); }

Predicate<Student> predi = t ->   return t.getGender().eqauls("남"); 

예제)


이상입니다.


다음 포스팅에서도 람다식 함수적 인터페이스에 대해 공부하겠습니다~

반응형