함수형 인터페이스로 인자를 받을 떄에


1. 해당 인자로 익명객체를 생성해서 전달하는건 아주 명료함.


2. 근데 람다를 전달해주는것은????


이걸 일종의 신택스 슈거로 생각하면 마음이 편하긴 한데, 람다가 신택스 슈거는 아니잖아.


람다한테 타입이 지정되는거임???? 함수형 인터페이스 타입을 받아오는 곳에 어떻게 람다가 들어가는거야???




뭐 람다는 어떻게 내부적으로 타입이 잘 맞도록 처리되어있다고 치자.

람다가 생성되면 익명객체가 되는데 해당 객체가 전달되는 상황에 맞춰서 해당 인터페이스도 구현해버리고

해당 람다 코드를 해당 인터페이스의 메소드로 가져간다고 하자.

캡처같은경우에는 익명객체의 내부 변수로 캡처한다고 생각하자.


오케이 오케이야..... 근데 3번은 더 씹창이다.



3. System.out::println 처럼 메소드를 건네주는 방법???



이거 뭐냐 씨발???? 이거도 람다임?????

그러면 앞서 2번에서 람다가 즉흥적으로 인터페이스로 변환된다는걸 가정하면 메소드도 동일하게 그짓을 한다는거임??

메소드의 타입은 뭐임???


얘도 동일하게 함수형 인터페이스로 변환되는 과정을 거친다는거지??


람다같은경우에는 캡처라는 특이사항이 있다면,

메소드같은 경우에는 객체의 내부 변수를 사용할 수 있다는 특이사항이 있는데


해당 객체의 필드같은거도 전부 익명객체의 상태필드로 들어간다는 개념인가???