01 지네릭스 (Generics)
자바/12. 지네릭스, 열거형, 에너테이션2021. 6. 22. 19:11
import java.util.ArrayList;
public Class GenericTest{
public static void main(String[] args) {
ArrayList list = new ArrayList();
list.add(10);
list.add(20);
list.add("30"); // String 추가
Integer i = (Integer)list.get(2); // 컴파일은 된다.
// 하지만 실행시 형변환 에러(ClassCastException)에러 발생한다. 프로그램이 죽음
System.out.println(list);
}
}
지네릭스
타입체크를 해주는 기능
import java.util.ArrayList;
public Class GenericTest{
public static void main(String[] args) {
//ArrayList list = new ArrayList(); //JDK1.5이전. 지네릭스 도입이전에는 이렇게 썼지만 아래와 같이 지네릭스 표시해줘야한다.
ArrayList<Integer> list = new ArrayList<Integer>(); //<Integer> 대신 <Object>로 쓰면 여러종류의 객체를 저장할 수 있다.
list.add(10);
list.add(20);
list.add("30"); // 지네릭스 덕분에 타입 체크가 강화됨
//Integer i = (Integer)list.get(2);
Integer i = list.get(2); // 형변환 생략 가능하다.
System.out.println(list);
}
}
지네릭스의 장점
1. 타입 안정성을 제공한다.
2. 타입체크와 형변환을 생략할 수 있으므로 코드가 간결해 진다.
- ClassCastExcpetion 형변환에러를 줄일수 있다.
※참고 NullPointerException 을 막을 수 있는 코딩방법
//문자열일 경우
String str = null; // 좋은 코드가 아니다.
str.length(); //NullPointerException 발생한다.
String str = ""; // 좋은 코드다.
str.length(); // 0출력, NullPointerExcetion 발생하지 않는다.
//배열일 경우
Object[] objArr = null; //NullPointerExcetipn 발생할 수 있다.
Object[] objArr = new Object[0]; //NullPointerExcetipn 발생하지 않는다.
Object[] objArr = {}; //NullPointerExcetipn 발생하지 않는다.
'자바 > 12. 지네릭스, 열거형, 에너테이션' 카테고리의 다른 글
03 타입 변수에 대입하기 (0) | 2021.06.22 |
---|---|
02 타입 변수 (0) | 2021.06.22 |
댓글()