타입 안전 이종 컨테이노를 고려하라 제네릭은 Set, Map등의 컬렉션이나 ThreadLocal, AtomicReference등의 단일원소 컨테이너에서도 흔히 사용됩니다. 이런 모든 쓰임에서 매개변수화되는 대상은 원소가 아닌 자기자신입니다. 따라서 하나의 컨테이너에서 매개변수화할 수 있는 타입의 수는 제한이 되는데, 이러한 상황에서 제네릭을 조금 더 유연하게 사용하고자 나온 패턴이 타입 안전 이종 컨테이너 패턴입니다. 💡 타입 안전 이종 컨테이너 패턴이란? 컨테이너 대신 키를 매개변수화한 다음 컨테이너에 값을 넣거나 뺄 때 매개변수화한 키를 함께 제공하는 방식입니다. 이렇게 된다면 제네릭 타입 시스템이 값의 타입이 키와 같음을 보장해줄것입니다. 💡 예제 Class 클래스는 제네릭 클래스이기 때문에 Cla..
제네릭과 가변인수를 함께 쓸 때는 신중하라 가변인수 메서드는 메서드에 넘기는 인수의 갯수를 클라이언트가 조절할 수 있게해줍니다. 하지만 가변인수를 받는 메서드측에서는 가변인수를 담기위한 배열이 자동적으로 만들어지는데 이러한 가변인수 매개변수에 제네릭이나 매개변수화 타입이 포함되면 컴파일 경고가 발생하게 됩니다. 이는 제네릭이나 매개변수화 타입은 실체화가 불가능한 타입이기 때문입니다. 또한 매개변수화 타입의 변수가 다른 타입의 객체를 참조하게 되면 힙 오염이 발생하게 됩니다. 이는 대부분 제네렉과 매개변수화 타입은 실체화가 불가능한 타입이기 때문에 생기는 문제로 메서드를 선언할 때 실체화 불가 타입으로 가변인수 매개변수를 선언할 경우 컴파일러가 경고를 내보내는데, 경고 내용은 매개변수화 타입의 변수가 타입..
- Total
- Today
- Yesterday
- spring boot redisson 분산락 구현
- JDK Dynamic Proxy와 CGLIB의 차이
- spring boot 엑셀 다운로드
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- redis sorted set으로 대기열 구현
- 자바 백엔드 개발자 추천 도서
- 트랜잭셔널 아웃박스 패턴 스프링부트
- @ControllerAdvice
- polling publisher spring boot
- pipe and filter architecture
- space based architecture
- spring boot redis 대기열 구현
- spring boot poi excel download
- spring boot excel download oom
- java ThreadLocal
- java userThread와 DaemonThread
- 서비스 기반 아키텍처
- redis sorted set
- pipeline architecture
- 공간 기반 아키텍처
- spring boot excel download paging
- transactional outbox pattern
- 람다 표현식
- spring boot redisson sorted set
- transactional outbox pattern spring boot
- spring boot redisson destributed lock
- microkernel architecture
- service based architecture
- redis 대기열 구현
- 레이어드 아키텍처란
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |