Notice
Recent Posts
Recent Comments
Link
250x250
develope_kkyu
[JAVA] 제네릭에 대해 알아보기 본문
728x90
public static void main(String[] args) {
// 1. 제네릭을 사용하지 않았을 경우의 케이스. ==> 데이터의 타입을 확인하면서 강제타입변환을 필요하였음.
List list1 = new ArrayList();
// List는 인터페이스, ArrayList는 구현클래스.
list1.add("HUMAN1");
list1.add("HUMAN2");
list1.add(10);
// 위의 형태로 문자와 숫자가 같이 담겨있을 수 있는 이유는
// Object의 형태이기 때문에 가능함.
String str1 = (String) list1.get(0);
// list1.get(0) ==> 되돌려주는 값의 타입. Object
// Object 클래스는 모든 클래스의 최상위 타입임.
// String 클래스는 Object를 상속 받은 Object 하위의 클래스임.
// 즉, Object 타입을 ==> String 타입으로 변환하기 위해서는 강제타입변환이 필요하다.
System.out.println("str1 : " + str1);
int intValue = (int) list1.get(2);
System.out.println("intValue : " + intValue);
// 2. 제네릭은 처음부터 감딜 데이터의 타입을 제한하는 것을 의미함,
List <String> list2 = new ArrayList<String>();
// list2라는 배열변수에 String 타입만 우선 담기는 것을 재한함.
list2.add("human3");
// list2.add(10));
// 제네릭을 사용하게 되면, 제약을 둔 데이터 타입이외의 것이 들어오면 미리 체크할 수 있는 장접
// 배열변수의 데이터 타입에 대해서 데이터 정합성을 사전에 체크할 수 있다.
String str2 = list2.get(0);
// 제네릭을 사용하면 배열변수에 담길 데이터에 대해서 미리 제한을 두었기 때문에
// 강제타입변환을 할 필요가 없어진다.
System.out.println("str2 : " + str2);
}
--
str1 : HUMAN1
intValue : 10
str2 : human3
728x90
'JAVA > Java SE' 카테고리의 다른 글
[JAVA fx] 야구 기록 관리 프로그램 만들기(실패) (0) | 2022.12.22 |
---|---|
[JAVA] 날짜 특징에 따른 날짜 구하기 (0) | 2022.12.21 |
[JAVA] 남은 시간 계산 (1) | 2022.12.21 |
[JAVA] 현재 시간 (0) | 2022.12.21 |
[JAVA] 은행 계좌 만들기(비밀번호 추가) (0) | 2022.12.21 |