본문 바로가기
Today I Learned 2024. 4. 9.

(24.04.09) Java의 정석 학습(람다, 함수형 인터페이스, 메서드 참조)

오늘 해야할 일이 산더미인데 + 내일 약속을 잡자는 연락 처리

이런것들이 정신을 혼미하게 만든 하루라 집중력이 살짝 흐트려졌지만

그럴 때 일 수록 한번 커피를 계속 때려서 집중을 시켰다

 

하루에 3잔 이상을 마시게 되는데 커피 말고 다른 방법을 찾는 것도 나쁘지 않을듯

화장실을 너무 자주가게되어 학습 맥이 끊긴다..

 

팀 미니 프로젝트도 이제 끝나가는데

다른 팀을 보니  git을 벌써 잘 활용을 하는 것으로 보이는듯 해서 

이번주 목표에 git 활용 공부를 좀 추가를 해야할 듯 싶다.

Slack으로 서로 공유하고 하는 것은 별로 효율적이지 못한듯 싶다.

 


Java의 정석 학습 간단 정리

람다식 Lambda expression를 쓰는 의의는 불필요한 코드를 쓰는 걸 방지하고 간략하는데 있는 것으로 생각된다.따라서 람다식의 작성 방법외에도 람다식이 함수형이므로 java.util.function 패키지의 함수형 인터페이스들과 함께 사용하는 방법과 메서드 참조를 통해서 코드의 분량이 극적으로 짧아진다는 걸 볼 수 있었다.인터페이스의 다형성과 같이 생략시키는 부분이 너무 많아선 어떤 코드의 맥락을 찾아가는데 좀 힘이 들었다..람다식 반환 타입이 무조건적으로 기본형과 관련이 있을 거라는 편협적인 생각을 해버려 좀 헤매 시간을 많이 잡아먹은 듯 했다.예제를 많이 볼 수 있도록..

더보기

람다식 Lambda expression

  • 메서드를 하나의 식 expression 으로 표현할 수 있게 한 것
  • 메서드의 역할 대체 → 메서드를 변수처럼 다룰 수 있게
    • 보다 간결, 쉽게 이해를 가능
    • 메서드의 결과로도 반환이 바로 가능
    • 매개변수 전달 가능

람다식 작성하기

 

함수형 인터페이스 Functional Interface

람다식 타입 & 형변환

 

  • 인터페이스로 형변환
  • 다른 타입으로 형변환

외부변수 참조 람다식

java.util.function패키지

  • 기본 함수형 인터페이스
  • 매개변수가 2개인 함수형 인터페이스
  • 매개변수 타입 = 반환타입 함수형 인터페이스
  • 컬렉션 프레임웍 & 함수형 인터페이스
  • 기본형 사용 함수형 인터페이스

Function 합성 & Predicate 결합 

  • andThen() & compose()
  • identity()
  • and() or() negate()
  • isEqual()

 

메서드 참조 method reference 

  • 메서드를 참조해서 람다식을 더 짧게 쓸 수 있는 것

생성자 메서드 참조

  • 람다식이 생성자를 호출해서 사용할 경우 위의 메서드 이름 대신 new 를 넣는 방식
  • 생성자 매개변수의 갯수에 따라서 당연히 함수형 인터페이스를 바꿔서 사용해야

내일은 투표날이라 공식적인 캠프 스케쥴은 없지만

그래도 특이한 스케쥴이 없는한

학습은 계속 이어서 해야할듯!