Skip to content

아이템 27. 비검사 경고를 제거하라 #55

Answered by jinan159
corock asked this question in 3. 과제
Discussion options

You must be logged in to vote

깔끔한 정리 덕분에 아이템 이해하는데 도움이 많이 됐습니다~!
특히 타입 캐스팅을 할때 해당 경고가 많이 발생하던데, 저도 확실히 타입이 보장되는 상황에서는 사용해야겠네요!
실제 사용사례가 있을까 궁금해서 뒤져보다가 ngrinder 라는 Naver 의 오픈소스에서도 활용하고있는걸 찾아서 공유합니다.
(https://github.com/naver/ngrinder/blob/develop/ngrinder-core/src/main/java/org/ngrinder/common/util/TypeConvertUtils.java)

package org.ngrinder.common.util;

public abstract class TypeConvertUtils {
	@SuppressWarnings("unchecked")
	public static <T> T cast(Object object) {
		return (T) object;
	}
}


(cast 메서드 활용)

이미지의 resolveReference("request") 는 Object 를 반환하는데, cast 메서드는 반환타입에 맞게 변환해줍니다.
이런 유틸로 캐스팅을 하면 타입 캐스팅 코드가 없어도 되고, Warning 도 모두 제거해주는 장점이 있을 것 같습니다.
대신 남용한다면 타입 안정성을 해칠 수 있으니 말씀하신 것 처럼 확실한 상황에만 사용하는게 좋겠네요..!

Replies: 2 comments

Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
0 replies
Answer selected by corock
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
5장 제네릭 이펙티브 자바 5장 (제네릭)
3 participants