기록장

제네릭이란? 본문

Programming/JAVA

제네릭이란?

HJJJJJ 2023. 1. 27. 18:00
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