기록장
제네릭이란? 본문
728x90
제네릭
-컴파일시 타입을 체크해 주는 기능
-객체의 타입 안정성을 높이고 형변환의 번거로움을 줄여줌
//TV객체만 저장할 수 있는 ArrayList생성
ArrayList<TV>tvList = new ArrayList<TV>();
tvList.add(new TV()); //ok
tvList.add(new Audio()); //컴파일 에러. TV외에 다른 타입 저장불가
//예전에는 다른 거를 넣어도 못잡아 냈음 제네릭 도입 후 잡아 낼 수 있음
제네릭의 문법
-제네릭을 사용하면 모든 타입의 상품을 저장 할 수 있음
-잘못된 캐스팅을 할 때 문법 오류로 발생할 수 있는 문제 예방
->강한 타입체크라고 함
제네릭 클래스와 제네릭 인터페이스 정의하기
-정의방법: 클래스명 다음에<제네릭 타입 변수명(들)을 삽입
접근 지정자 class 클래스명<T>{
//타입 T를 사용한 코드
}
접근 지정자 interface 클래스명<T>{
//타입 T를 사용한 코드
}
접근 지정자 class 클래스명<K,V>{
//타입 K,V를 사용한 코드
}
접근 지정자 interface 클래스명<K,V>{
//타입 K,V를 사용한 코드
}
제네릭 타입 사용자가 임의로 가능 하지만
일반적으로 영문 대문자 한글자를 사용
관례적으로는
제네릭 타입 변수 | 의미 |
T | 타입(Type) |
K | 키(Key) |
V | 값(Value) |
N | 숫자(Number) |
E | 원소(Element) |
public class MyClass<T>{
private T t;
public T get() {
return t;
}
public void set(T t){
this.t=t;
}
}
제네릭 클래스의 객체 생성
클래스명<실제 제네릭 타입> 참조 변수명 = new 클래스명<실제 제네릭 타입>();
또는
클래스명<실제 제네릭 타입> 참조 변수명 = new 클래스명<>();
728x90
'Programming > JAVA' 카테고리의 다른 글
자바의 객체지향 특징 - 생성자 (0) | 2023.01.22 |
---|---|
스레드의 기본 (0) | 2023.01.19 |
컬렉션프레임웍과 핵심 인터페이스 (0) | 2022.12.19 |
이스케이프 문자/Math (0) | 2022.12.19 |
생성자 (0) | 2022.11.26 |
Comments