그냥 FunctionalInterface 구현하는 익명클래스 구현해주는 신태틱 슈거라고 이해하면 됨
익명(hheee)2024-07-20 14:00
답글
신택틱 슈거
익명(hheee)2024-07-20 14:01
ㅇㅇ 문법적으로 함수를 일급시민(님말대로 변수에 담을 수 있는 기능)이 안되니까
그걸 컴파일러에서 그렇게 보이는 식으로 지원하는 느낌임. 실제로 까보면 익명 클래스로 변환되고. (근데 멤버 메소드가 아니라 스태틱으로 변했던가.. 기억은 안나는데 궁금하면 까보쇼)
다만 아무래도 익명 클래스가 본진이다보니까 타입같은거 인터페이스 지정할 때 매우 빡센 부분이 있는 느낌.
백갤러 3(211.209)2024-07-20 14:03
답글
js를 하다 해서 그런지 자바로 어떤 액션을 넘기고 실행하는게 번거롭긴 하네 ㅋㅋ
함수 자체를 변수에 담아버리고 그걸 넘긴다음 함수 구현부에서는 넘어온 파라미터명에 ()만 붙여서 실행해버리니까.. 답변 ㄱㅅ
익명(119.192)2024-07-20 14:12
답글
나도 님과 비슷한 느낌을 받았는데 내가 느낀 결론은 Java에서 Js처럼 다루려고 하지 말자가 맞음.ㅋ ㅋㅋㅋ
일단 함수 인터페이스 설계하는것부터 빡세고 (애초에 함수형 프로그래밍을 전혀 고려하지않은 구조임)
그래서 이미 만들어진 빌트인 기능정도에서 사용하는거면 나쁘지 않다 느낌.
백갤러 3(211.209)2024-07-20 14:16
답글
나도 쭉 기본 정의되어있는 함수형 인터페이스들 보면서 자바8 만들때 얘네들 어떻게든 함수형 프로그래밍을 지원해보려고 대가리 엄청 굴렸겠구나 싶긴했음 ㅋㅋㅋ
진짜 대가리쎄게 때려주고싶음
글쓴사람인데 왜
이거 보면 뒤늦게라도 왜 그런지 내가 뭘 잘못 말하고 있는지 알려줘 이유가 있으니까 이렇게 달았을거아냐
함수를 파라미터로 사용하기위해 함수형인터페이스가 도입되었고 그 파라미터를 표현하는 방식 중 하나가 람다. 번잡한 구현을 생략하고 좀 더 파라미터라는 성격에 맞게 사용할 수 있음
그 말이 본문의 ‘익명클래스를 통해 전달할 액션을 구현하는것보다 좀더 직관적으로 보이도록 만들어주는게 람다표현식인건가?’ 랑 같은 의미 아니야? 아닌가?
익명클래스를 통한 구현이랑 비교했을땐 직관적이라기 보단 간결하고 가독성이 좋다라고 표현하는게 맞을듯
그냥 FunctionalInterface 구현하는 익명클래스 구현해주는 신태틱 슈거라고 이해하면 됨
신택틱 슈거
ㅇㅇ 문법적으로 함수를 일급시민(님말대로 변수에 담을 수 있는 기능)이 안되니까 그걸 컴파일러에서 그렇게 보이는 식으로 지원하는 느낌임. 실제로 까보면 익명 클래스로 변환되고. (근데 멤버 메소드가 아니라 스태틱으로 변했던가.. 기억은 안나는데 궁금하면 까보쇼) 다만 아무래도 익명 클래스가 본진이다보니까 타입같은거 인터페이스 지정할 때 매우 빡센 부분이 있는 느낌.
js를 하다 해서 그런지 자바로 어떤 액션을 넘기고 실행하는게 번거롭긴 하네 ㅋㅋ 함수 자체를 변수에 담아버리고 그걸 넘긴다음 함수 구현부에서는 넘어온 파라미터명에 ()만 붙여서 실행해버리니까.. 답변 ㄱㅅ
나도 님과 비슷한 느낌을 받았는데 내가 느낀 결론은 Java에서 Js처럼 다루려고 하지 말자가 맞음.ㅋ ㅋㅋㅋ 일단 함수 인터페이스 설계하는것부터 빡세고 (애초에 함수형 프로그래밍을 전혀 고려하지않은 구조임) 그래서 이미 만들어진 빌트인 기능정도에서 사용하는거면 나쁘지 않다 느낌.
나도 쭉 기본 정의되어있는 함수형 인터페이스들 보면서 자바8 만들때 얘네들 어떻게든 함수형 프로그래밍을 지원해보려고 대가리 엄청 굴렸겠구나 싶긴했음 ㅋㅋㅋ