아래와 같은 코드는 컴파일시 Warning 메세지를 뿜어냅니다.
import java.util.*; public class ArrayListGeneric { public static void main(String[] args) { ArrayList data = new ArrayList(); data.add("hello"); data.add("world"); Iterator<String> it = data.iterator(); while (it.hasNext()) { String s = it.next(); System.out.println(s); } } }
Warning 이라는 경고를 제거하기 위해서는 두가지 방법이 있습니다.
Generic 을 이용하는 방법과 Annotation 을 이용하는 방법입니다.
먼저 Generic 을 이용한 코드는 아래와 같습니다.
아래 코드를 보면 Collection 계열 사용시에 담아올 형 타입을 미리 정의 해주므로서 컴파일시 나타나게 되는
경고가 제거 되는 형태입니다.
import java.util.*; public class ArrayListGeneric { public static void main(String[] args) { ArrayList<String> data = new ArrayList<String>(); data.add("hello"); data.add("world"); Iterator<String> it = data.iterator(); while (it.hasNext()) { String s = it.next(); System.out.println(s); } } }
Annotation 을 이용한 방법은 코드는 아래와 같습니다.
원래 어노테이션의 목적이 컴파일러에게 알려주는 주석의 목적인데 아래 방법은 컴파일러에게
경고따위 무시해라 (ㅡㅡ;) 라는 내용입니다. 복잡한 세상 간단하게 사는 것도 좋은 방법이겠죠? ^^;
import java.util.*; public class ArrayListGeneric { @SuppressWarnings("unchecked") public static void main(String[] args) { ArrayList data = new ArrayList(); data.add("hello"); data.add("world"); Iterator it = data.iterator(); while (it.hasNext()) { String s = it.next(); System.out.println(s); } } }
경고를 제거하는 2가지 방법이 있지만 Annotation 을 이용하는 방법은 문제의 해결이라기 보다 회피하는 방법이니
Generic 을 이용해서 데이터형을 체크하는 코드를 추천합니다.