비검사 경고란, 컴파일러가 “타입 검사를 하지 않는다.”라는 의미를 가진 경로를 의미한다. 이러한 경고를 그대로 둔다면, 어플리케이션은 타입 안정성을 잃어버리게 된다. 이 경고 메시지의 행간에는 런타임 시점에 ClassCastException이 발생할 수 있고 저자의 의도대로 코드가 동작하지 않을 수도 있다라는 의미가 담겨 있다.
Wrong
예제 코드
Set<String> statements = new HashSet();
오류 메시지
Vnery.java:4 warning: [unchecked] unchecked conversion
required: Set<String>
found: HashSet
Right
예제 코드
다이아몬드<> 연산자는 컴파일러가 올바른 실제 타입 매개변수를 추론할 수 있도록 도와주는 연산자이다.
Set<String> statements = new HashSet<>();
오류 발생 시점; Compile