1개의 추상 메소드를 갖는 인터페이스
2개의 추상 메소드가 있다면 함수형 인터페이스가 아니다.
구현된 함수형 인터페이스는 @FunctionalInterface를 표시하여 요건을 검증할 수 있다.
Predicate: 인자를 받아 Boolean 타입을 리턴하는 인터페이스를 제공. Predicate<T> T는 타입.
Consumer: 인자를 하나 받고 리턴은 없는 인터페이스, void accept(T t)를 제공.
Supplier는 인자를 받지 않고 T 타입의 객체를 리턴하는 인터페이스, T get() 메소드를 제공.
Function은 T 타입의 인자를 받아 R 타입의 객체를 리턴하는 인터페이스
package functionalInferface;
@FunctionalInterface
public interface Converter<F, T> {
T convert (F from);
}
public class IntegerUtils {
//static method
public static int stringInt(String s){
return Integer.parseInt(s);
}
//instance method: 인스턴스 생성 후, '참조 변수.메소드명()'으로 호출
//객체를 먼저 생성해주어야 하는 메소드
public int stringtoInt(String s){
return Integer.parseInt(s);
}
}