오늘 한 일
- JAVA 복습 (chap13,14. 제네릭, 람다식)
배운 것
- 제네릭의 사용 이유: 컴파일 시의 강한 타입 체크, 불필요한 타입 변환(Casting) 제거
- 제네릭을 사용하지 않고 리턴타입이나 파라미터 타입을 최상위 클래스인 Object 타입으로 할 수도 있지만 타입 변환의 번거로움이 있다.
- 와일드카드: 제네릭 타입을 리턴타입이나 인자로 사용할 때 사용
- < ? extends 상위타입 > : 상위타입이나 그 하위 타입이 올 수 있음
- < ? super 하위타입 > : 하위타입이나 그 상위 타입이 올 수 있음
- 람다식(Lambda Expressions): '(매개변수, ...) -> { 실행문; ... }'
인터페이스 변수 = () -> { ... };
- 함수 지향 언어에 가까움
- 람다식 -> 매개변수를 가진 코드 블록 -> 인터페이스의 익명 구현 객체
- 람다식을 사용하면 자바 코드가 간결해지고 컬렉션 요소의 필터링, 매핑에 유용함
- 람다식 내부에서 this는 람다식으로 생성되는 익명 객체를 참조하는 것이 아니라 람다식을 실행한 객체를 참조한다.
- 메소드 내부에서 실행된 람다식에서 메소드의 매개변수나 로컬변수는 final 특성을 가져 읽기만 가능하다.
- 함수적 인터페이스 Consumer, Supplier, Function, Operator, Predicate
- 메소드 참조
클래스 :: 메소드명
stream.forEach( System.out :: println );
s -> System.out.println(s) 와 동일하다
내일 할 일
- JAVA 복습 (chap15. 컬렉션 프레임워크)