본문으로 바로가기

[자바]4.제네릭(Generic)

category Language/자바 2021. 3. 29. 07:44
728x90
반응형
SMALL

우리는 제네릭을 왜 사용하는가

✔️컴파일 시 강한 타입 체크를 할 수 있다.

 실행 시 타입 에러가 나는 것 보다는 컴파일 시 미리 타입을 강하게 체크하여 사전에 방지

 

✔️타입 변환을 제거한다.

 비 제네릭 코드는 불필요한 타입 변환을 하기 때문에 프로그램 성능에 악영향을 미친다.

ex)불필요한 타입변환 시

String str=(String)list.get(0);

List list=new ArrayList();
list.add("hello");
String str=(String)list.get(0);

ex)제네릭 코드 사용으로 인한 타입변환 제거

String str=list.get(0);

List<String> list=new ArrayList<String>();
list.add("hello");
String str=list.get(0);

 

제네릭은 클래스를 설계할 때 구체적은 타입을 명시하지 않고

타입 파라미터로 대체했다가 실제 클래스가 사용될 때

구체적인 타입을 지정함으로써 타입 변환을 최소화 시킨다,

public class Box<T> {
	private T t;
	public T get() {
		return t;
	}
	public void set(T t) {
		this.t=t;
	}

}
public class BoxExample {
	public static void main(String[] args) {
		Box<String> box1=new Box<String>();
		box1.set("hello");
		String str=box1.get();
		
		Box<Integer> box2=new Box<Integer>();
		box2.set(6);
		int value=box2.get();
	}

}

 

728x90
반응형
LIST

'Language > 자바' 카테고리의 다른 글

[자바]6. 표준API의 함수적 인터페이스  (0) 2021.04.03
[자바]5. 람다(Lamda)  (0) 2021.04.02
[자바]3. 날짜 출력 Date  (0) 2021.03.23
[자바]2. StringTokenizer // StringBuilder 사용법  (0) 2021.03.21
[자바]1. 싱글톤  (0) 2021.03.12