JAVA - 람다와 스트림(2)

jodbsgh·2022년 4월 27일
0

💡"JAVA"

목록 보기
55/67
  • 함수형 인터페이스 : 단 하나의 추상 메서드만 선언된 인터페이스
interface MyFunction{
	public abstract int max(int a, int b);
}

/* -------------------------- */
// 익명클래스 선언, 객체생성을 동시에
MyFunction f = new MyFunction(){
				public int max(int a, int b)
                {
                	return a > b ? a : b;
                }
			};
            
int value = f.max(3,5);	//ok MyFunction에 max가 있음
  • 함수형 인터페이스 타입의 참조변수로 람다식을 참조할 수 있음.
    (단, 함수형 인터페이스의 메서드와 람다식의 매개변수 개수와 반환타입이 일치해야함)
MyFunction f = (a,b) -> a>b ? a:b;

int value = f.max(3,5);	//실제로는 람다식(익명 함수)이 호출됨
예제)
@FunctionalInterface	//함수형 인터페이스는 단 하나의 추상 메서드만 가짐
interface MyFunction{
	int max(int a, int b);
}

class Test{
	pblic static void main(String[] args)
    {
    /*
    	MyFunction obj = new MyFunction(){
        	public int max(int a, int b)
            {
            	return a > b? a:b;
            }
        };
    */
    	MyFunction f = (a,b)-> a>b ? a:b;	//람다식 익명객체
        int value = obj.max(3,5)	//함수형 인터페이스
        System.out.println("value="+value);
    }
}
profile
어제 보다는 내일을, 내일 보다는 오늘을 🚀

0개의 댓글