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 |