Java에서 Generic을 처음 만나는 경우는 대부분 Collections Framework을 사용할 때이다. 자료구조를 알아도 Generic이 생소해 바로 사용하지를 못하겠더라. Generic은 Type Strict한 JAVA의 특성을 잘 살리기 위해 새롭게 추가된 기능이라고 한다.
Generic을 만나는 경우는 크게 세가지다.
오늘은 당장 급한 Collections Case만 볼 예정이다.
//* No Generic
// ArrayList al = new ArrayList();
// al.add("one");
// al.add("two");
// al.add("three");
// for (int i = 0; i < al.size(); i++) {
// String value = (String) al.get(i);
// System.out.println(value);
// }
//* With Generic
ArrayList<String> al = new ArrayList<String>();
al.add("one");
al.add("two");
al.add("three");
for (int i = 0; i < al.size(); i++) {
String value = al.get(i);
System.out.println(value);
}
Code Ref : 생활코딩 Collections
지네릭 없을 땐 String value = al.get(i);
하면 add("one");
할때 "one"이 Object Type으로 들어가서 String value로 get할수가 없다. Get하기 위해선 (String)으로 다운캐스팅이 필요하다.
Generic을 사용하면 해당 ArrayList<String>
에는 String이 들어가는게 명시되어 있고, 그러다보니 "one"이 들어갈때도 String으로 들어가고, get(); 받아도 String으로 바로 받을 수 있게 되었다. 굳굳
To Be Continued...