배열보다는 리스트를 사용하라 배열과 제네릭 타입에는 중요한 차이가 2가지 있습니다. 💡 차이점 1) 배열은 공변이고, 제네릭은 불공변입니다. 배열은 공변입니다. 공변이란 예를들어 Sub가 Super의 하위 타입이라면 배열 Sub[]는 배열 Super[]의 하위 타입입니다.(공변 = 함께 변한다.) 반면 제네릭은 불공변입니다. 즉 서로 다른 타입 Type1, Type2가 있을 때 List은 List의 하위 타입도 상위 타입도 아닙니다. 그냥 서로 다른 타입입니다. 하지만 문제가 되는 것은 배열입니다. 🧨 예제 코드 Case 1같은 경우는 문법적으로는 허용되며 컴파일 단계에서 문제를 발견하지 못하고 런타임시에 예외가 발생합니다. Case 2같은 경우는 컴파일 에러가 발생하여 개발자가 바로 알 수 있습니다. ..

비검사 경고를 제거하라 💡비검사 경고란? 비검사 경고란 에러는 아니지만 warning이 뜨거나 영역이 노란색으로 되어 개발자에게 경고를 알려주는 것입니다. 제네릭을 사용하면서 자주만나게 되며, 비검사 경고로는 비검사 형변환, 메서드 호출, 매개변수화 가변인수 타입, 변환 경고등 다양한데 이러한 대부분의 비검사 경고들은 쉽게 해결할 수 있습니다. 💡비검사 경고해결 방법 자바 7버전부터는 다이아몬드 연산자()만으로도 해결이 가능합니다.(타입 추론 가능) 이런 경고는 해결하기 쉬운 경고이며, 해결하기 어렵거나 바로 해결할 수 없는 경고가 나타날 수 있는데 이런 비검사 경고를 최대한 제거할 수 있도록 해야합니다. 그렇게 된다면 타입 안전성이 보장됩니다. List foods = new ArrayList(); //..
- Total
- Today
- Yesterday
- 자바 백엔드 개발자 추천 도서
- transactional outbox pattern spring boot
- redis sorted set
- 람다 표현식
- java userThread와 DaemonThread
- spring boot redisson sorted set
- spring boot 엑셀 다운로드
- spring boot redisson 분산락 구현
- JDK Dynamic Proxy와 CGLIB의 차이
- 서비스 기반 아키텍처
- spring boot redis 대기열 구현
- 공간 기반 아키텍처
- spring boot redisson destributed lock
- transactional outbox pattern
- 트랜잭셔널 아웃박스 패턴 스프링부트
- redis sorted set으로 대기열 구현
- microkernel architecture
- pipe and filter architecture
- polling publisher spring boot
- 레이어드 아키텍처란
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- @ControllerAdvice
- redis 대기열 구현
- service based architecture
- spring boot poi excel download
- java ThreadLocal
- space based architecture
- spring boot excel download oom
- spring boot excel download paging
- pipeline architecture
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |