천발무금
976
2017-06-08 17:43:20 작성 2017-06-08 18:05:32 수정됨
5
764

람다식 관련 질문드립니다!


java8에서 추가된 람다식 사용목적에 대한 질문입니다 ㅎㅎ 


보통 java에서 메서드를 만들면 메서드를 호출해야 해당 메서드가 실행되는데


람다식은 코드도 확 줄고, 가독성이 높고, 메서드를 따로 호출할 필요 없이 바로 메서드가 실행되기 때문에  사용하는건가요?ㅎㅎ


제가 이해하기로는 메서드 따로 호출 필요없이 바로 메서드 내용이 실행된다는거 같은데, 인터넷에 어려운 용어들이 많이 나와서요..ㅎㅎ 제가 이해한게 맞는지 문의차 글 올렸습니다 ㅎㅎ

0
  • 답변 5

  • ee32321
    1k
    2017-06-08 22:01:29

    데이터 Collection사용과 관계있던걸로 봤었습니다.

    <?> 이런 형태도 있구요. 아는데 까지 적어보네요.

  • asd
    16k
    2017-06-08 22:03:36

    람다는 간단하게 생각하면 익명 클래스의 표현을 극도로 줄이는 표현입니다. 그 뿐입니다.

    메서드를 호출하지않았는데 실행되는건 전혀 상관없습니다. 잘 생각해보면 '호출하지 않았는데 실행된다.' 라는말은 이상한 말입니다. '실행된다는건 호출됐다'라는 것이기 때문이죠.

    람다를 이해하고싶으시면 익명클래스를 많이 활용해보세요.

  • 천발무금
    976
    2017-06-09 09:08:09

    ee32321님 답변 감사드립니다 ㅎㅎ 저도 Collection사용과 관련되있다 라는 글을 본 것 같습니다. 



    LichKing님 답변 감사드립니다 ㅎㅎ 익명클래스를 많이 사용해보겠습니다 ^^

    말씀대로 '호출하지 않았는데 실행된다.' 라는 말이 말이 안되는거네요 ㅎㅎ

    음..제가 이해하기로는 메서드는 구현과 호출이 별개로 이루어졌지만, 람다식으로 구현과 호출을 한번에 진행한다. 라고 이해를 하고 있다는게 좀 더 정확한 표현이었겠네요 ㅎㅎ

  • asd
    16k
    2017-06-09 09:10:42

    구현과 호출을 한번에 진행한다는 의미도 람다랑은 상관이 없습니다. 말씀하시는 내용은 자바스크립트의 즉시실행함수가 오히려 비슷한것 같은데요.

    람다는 그냥 구현을 간략화 한것뿐이지 람다를 구현한 그 자체로 호출되지는 않습니다. 익명클래스와 마찬가지로 메서드를 명시적으로 호출해줘야 그떄 비로소 호출이 됩니다.

  • 천발무금
    976
    2017-06-09 10:50:33

    LichKing님 답변 감사드립니다 ㅎㅎ


    제가 자바스크립트의 즉시실행함수 처럼 이해를 했던 것 같습니다. 익명클래스 먼저 사용해보고, 람다식을 사용해봐야할 것 같습니다. 엉뚱한 방향으로 이해하고 있었는데, 학습할 방향을 잡아주셔서 감사드립니다 ^^

  • 로그인을 하시면 답변을 등록할 수 있습니다.