본문 바로가기
프로그래밍

Generic과 Auto-boxing

by 탁구치는 개발자 2009. 3. 15.
자바5.0이 나오면서 새로추가된 기능으로 코드가 간결해진다.
단, 기존 1.4에 익숙해져있는 개발자들이 이 문법을 봤을때는 살짝 거부감이 들지도 모른다..
나 또한 1.4만 써오다 이런게 있다고만 알았지 정작 사용해보지는 않았기 때문이다.
하지만 지금 회사에서 대리님 한분이 사용을 하시길래 개념을 확실히 잡고자 이렇게 정리했다..

import java.util.ArrayList;
public class Generic {
 public static void main(String[] args) {
  // 기존 JDK 1.4에서 사용했던 방식
  ArrayList a1 = new ArrayList();
  a1.add("aaa");
  a1.add("bbb");
  a1.add("ccc");
  for (int i = 0; i < a1.size(); ++i) {
   String imsi = (String) a1.get(i);
   System.out.println(imsi);
  }
  // JDK5에 추가된 Generic 기능과 for문의 확장
  // List 객체에 난 String 객체만 사용할거라다고 명시를 하기때문에 for문에서 Casting 작업을 하지 않아도 된다.
  ArrayList<String> a2 = new ArrayList<String>();
  a2.add("이남규천재");
  a2.add("우헤헤헤헤");
  a2.add("음하하하하");
  a2.add("우부흐스");
  for (String o : a2) {
   System.out.println(o);
  }
  // 배열도 for문의 확장기능을 사용할 수 있다.
  String[] str = new String[] { "DBA", "JAVA", "C++", "eclispe" };
  for (String s : str) {
   System.out.println(s);
  }
  // AutoBoxing
  // 아래와 같이 List 객체에 Integer로 Generic되어있지만 new Integer(1) 코드를 단순 숫자 1로 넣어도
  // 된다.
  // 이는 AutoBoxing 기능이 1이라는 숫자를 자동으로 Integer 제너릭을 보고 변환시켜주기 때문이다.
  ArrayList<Integer> a3 = new ArrayList<Integer>();
  // a3.add(new Integer(1));
  // a3.add(new Integer(2));
  // a3.add(new Integer(3));
  a3.add(1);
  a3.add(2);
  a3.add(3);
  for (Integer a : a3) {
   System.out.println(a);
  }
 }
}


'프로그래밍' 카테고리의 다른 글

getter, setter 자동 생성 라이브러리 lombok  (0) 2012.10.23
properties 너가 날 엿 먹이는 구나~  (0) 2012.04.14
메인 도메인과 서브 도메인 세션 공유 문제  (0) 2012.04.14
ant를 이용한 ftp 업로드  (0) 2009.04.01
날짜함수  (0) 2009.02.21
자바의 인터페이스  (0) 2009.01.26
오라클 잠금 기능  (0) 2009.01.02
BLOB 사용 예제  (0) 2008.12.31