책/Effective Java

책/Effective Java

[이펙티브 자바] 아이템 32: 제네릭과 가변인수를 함께 쓸 때는 신중하라

본문은 Effective Java를 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 선결론 varagrs 매개변수에 제네릭이나 매개변수화 타입이 포함되면 컴파일 경고가 발생한다 따라서 제네릭이나 매개변수화 타입이 포함된 varargs 매개변수를 사용하고자 한다면, 타입 안전 여부를 확인한 후 @SafeVarargs 애너테이션을 달도록 한다 가변인수 메서드와 제네릭 1. 가변인수와 제네릭은 궁합이 좋지 않다 가변인수 메서드를 호출하면 가변인수를 담기 위한 배열이 자동으로 하나 만들어진다 거의 모든 제네릭과 매개변수화 타입은 실체화 되지 않으며, 실체화 불가 타입은 런타임에는 컴파일타임보다 타입 관련 정보를 적게 담고 있다(아이템 28) 앞..

책/Effective Java

[이펙티브 자바] 아이템 30: 이왕이면 제네릭 메서드로 만들라

본문은 Effective Java를 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 선결론 입력 매개변수와 반환값을 명시적으로 형변환해야 하는 메서드보다 제네릭 메서드가 더 안전하며 사용하기도 쉽다 제네릭 타입과 마찬가지로 형변환을 해줘야 하는 기존 메서드는 제네릭하게 만들자 타입 안전한 메서드 만들기 두 집합의 합집합을 반환하는 메서드를 타입 안전하게 만들어보자 문제가 있는 메서드 - 로 타입 사용 public static Set union(Set s1, Set s2) { Set result = new HashSet(s1); result.addAll(s2); return result; } 컴파일하면 다음과 같은 경고가 발생한다. 이를 ..

책/Effective Java

[이펙티브 자바] 아이템 28: 배열보다는 리스트를 사용하라

본문은 Effective Java를 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 선결론 매우 다른 타입 규칙이 배열과 제네릭에 적용된 결과, 배열은 런타임에 타입 안전한 반면 컴파일에 그렇지 않고, 제네릭은 그 반대다 따라서 둘을 섞어 쓰는 것을 지양하고, 배열 대신 리스트를 사용하라 배열과 제네릭 타입의 차이 1. 배열은 공변(covariant)인 반면 제네릭은 불공변(invariant)이다 공변이란? Sub가 Super의 하위 타입이라면 배열 Sub[]는 배열 Super[]의 하위 타입이 되는 것 즉, 함께 변한다는 뜻 배열(공변) class UsingArray { public static void main(String[] arg..

책/Effective Java

[이펙티브 자바] 아이템 27: 비검사 경고를 제거하자

본문은 Effective Java를 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 선요약 비검사 경고는 중요하므로 무시하면 안된다 모든 비검사 경고는 런타임에 ClassCastException을 일으킬 수 있는 잠재적인 가능성이 있으므로 최선을 다해 제거한다 경고를 없애기 어렵다면 @SuppressWarnings("unchecked") 애너테이션으로 경고를 숨기되, 다음의 사항을 따라야 한다 코드의 타입 안전함을 증명하라 범위를 최대한 좁혀 @SuppressWarnings("unchecked") 애너테이션으로 경고를 숨겨라 경고를 숨기기로 한 근거를 주석으로 남겨라 비검사 경고 비검사 경고란? unchecked warning, 컴파일러..

책/Effective Java

[이펙티브 자바] 아이템 26: 로 타입은 사용하지 마라

본문은 Effective Java를 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다. 선요약 로 타입을 사용하면 런타임에 예외가 일어날 수 있으므로 사용하면 안 된다 로 타입은 제네릭이 도입되기 이전 코드와의 호환성을 위해 제공될 뿐이다 용어 한글 용어 영문 용어 예 매개변수화 타입 parameterized type List 실제 타입 매개변수 actual type parameter String 제네릭 타입 generic type List 정규 타입 매개변수 formal type parameter E 비한정적 와일드카드 타입 unbounded wildcard type List 로 타입 raw type List 한정적 타입 매개변수 boun..

코택
'책/Effective Java' 카테고리의 글 목록 (6 Page)