본문 바로가기
반응형

공변2

자바의 변성 - 공변/무공변/반공변, 사용지점 변성과 선언 지점 변성 목차 · 변성 · 제네릭과 공변/무공변 · 와일드카드 타입과 공변/반공변 · 사용지점 변성과 선언 지점 변성 변성 변성(Variance)은 타입의 계층 관계에서 서로 다른 타입 간에 어떤 관계가 있는지 나타내는 개념이다. 해당 개념은 자바의 제네릭을 설명하기 위해 자주 사용된다. 변성에는 네 가지 종류가 있다. 공변(covariant), 반공변(contravariant), 이변량(bivariant), 무공변(or 불공변, invariant) 이 중에서 알아볼 것은 공변, 반공변, 무공변이다. 제네릭과 공변/무공변 공변은 사전적 의미로 '함께 변하는'이라는 뜻이다. 제네릭은 기본적으로 무공변(or 불공변, invariant)이다. 즉, 서로 다른 타입 Type1과 Type2가 있을 때, List은 List.. 2022. 2. 8.
[Effective Java] 이펙티브자바 정리: 5장 제네릭 목차 · 아이템 26. 로 타입은 사용하지 말라 · 아이템 27. 비검사 경고를 제거하라 · 아이템 28. 배열보다는 리스트를 사용하라 · 아이템 29. 이왕이면 제네릭 타입으로 만들라 · 아이템 30. 이왕이면 제네릭 메서드로 만들라 · 아이템 31. 한정적 와일드카드를 사용해 API 유연성을 높이라 · 아이템 32. 제네릭과 가변인수를 함께 쓸 때는 신중하라 · 아이템 33. 타입 안전 이종 컨테이너를 고려하라 · 옮긴이의 말 아이템 26. 로 타입은 사용하지 말라 핵심 정리 · 로 타입을 사용하면 런타임에 예외가 날 수 있으니 사용하면 안 된다. - 로 타입은 제네릭이 도입되기 이전 코드와의 호환성을 위해 제공될 뿐이다. · Set는 어떠 타입의 객체도 저장할 수 있는 매개변수화 타입이고, Set는.. 2022. 2. 6.
반응형