[TIL] 2022.01.08

Minsu Han·2022년 1월 8일
0

TODAY I LEARNED

목록 보기
11/46
post-thumbnail

오늘 한 일

  • JAVA 복습 (chap13,14. 제네릭, 람다식)

배운 것

  • 제네릭의 사용 이유: 컴파일 시의 강한 타입 체크, 불필요한 타입 변환(Casting) 제거
  • 제네릭을 사용하지 않고 리턴타입이나 파라미터 타입을 최상위 클래스인 Object 타입으로 할 수도 있지만 타입 변환의 번거로움이 있다.
  • 와일드카드: 제네릭 타입을 리턴타입이나 인자로 사용할 때 사용
  • < ? extends 상위타입 > : 상위타입이나 그 하위 타입이 올 수 있음
  • < ? super 하위타입 > : 하위타입이나 그 상위 타입이 올 수 있음

  • 람다식(Lambda Expressions): '(매개변수, ...) -> { 실행문; ... }'
인터페이스 변수 = () -> { ... };
  • 함수 지향 언어에 가까움
  • 람다식 -> 매개변수를 가진 코드 블록 -> 인터페이스의 익명 구현 객체
  • 람다식을 사용하면 자바 코드가 간결해지고 컬렉션 요소의 필터링, 매핑에 유용
  • 람다식 내부에서 this는 람다식으로 생성되는 익명 객체를 참조하는 것이 아니라 람다식을 실행한 객체를 참조한다.
  • 메소드 내부에서 실행된 람다식에서 메소드의 매개변수나 로컬변수는 final 특성을 가져 읽기만 가능하다.
  • 함수적 인터페이스 Consumer, Supplier, Function, Operator, Predicate
  • 메소드 참조
// 정적 메소드 참조
클래스 :: 메소드명

// example
stream.forEach( System.out :: println );
s -> System.out.println(s) 와 동일하다

내일 할 일

  • JAVA 복습 (chap15. 컬렉션 프레임워크)
profile
기록하기

0개의 댓글