목차
객체의 타입을 미리 정해
번거로운 형변환을 줄여주고 컴파일시 객체의 타입을 체크하기 위해 사용합니다.
즉, 사전에 형 변환시 발생하는 문제점을 없애기 위해 사용합니다.
사용 이유
- 객체선언시 타입을 정하기 때문에 객체안에 잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거 가능
- 불필요한 형변환 줄이기 위해
제네릭 사용 전
class Box {
Object item;
void setItem(Object item) {this.item = item;}
Object getItem() {return item;}
}
public class JavaChapter {
public static void main(String[] args) {
Box box = new Box();
box.setItem("AAA");
String a = (String) box.getItem();
System.out.println(a);
}
}
위 코드처럼 Object를 사용하면 String으로 변환을 해야합니다.
만약 실수로 Integer나 다른 타입을 넣으면 더 복잡해지게 됩니다...
제네릭 사용 후
class Box<T> {
T item;
void setItem(T item) {this.item = item;}
T getItem() {return item;}
}
public class JavaChapter {
public static void main(String[] args) {
Box<String> sbox = new Box<>();
Box<Integer> ibox = new Box<>();
sbox.setItem("AAA");
ibox.setItem(1234);
System.out.println(sbox.getItem());
System.out.println(ibox.getItem());
}
}
제네릭을 사용한 코드입니다.
제네릭은 객체 선언시 타입을 미리 정할 수 있습니다.
따라서 타입변환을 할 필요가 없습니다.
'Java' 카테고리의 다른 글
ThreadPool (1) | 2023.10.08 |
---|---|
자바 컬렉션 (0) | 2023.09.27 |
java.lang 패키지 (0) | 2023.09.26 |
HashMap, HashTable, ConcurrentHashMap (0) | 2023.08.22 |
Java - 타입추론 Var (0) | 2023.08.17 |
객체의 타입을 미리 정해
번거로운 형변환을 줄여주고 컴파일시 객체의 타입을 체크하기 위해 사용합니다.
즉, 사전에 형 변환시 발생하는 문제점을 없애기 위해 사용합니다.
사용 이유
- 객체선언시 타입을 정하기 때문에 객체안에 잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거 가능
- 불필요한 형변환 줄이기 위해
제네릭 사용 전
class Box {
Object item;
void setItem(Object item) {this.item = item;}
Object getItem() {return item;}
}
public class JavaChapter {
public static void main(String[] args) {
Box box = new Box();
box.setItem("AAA");
String a = (String) box.getItem();
System.out.println(a);
}
}
위 코드처럼 Object를 사용하면 String으로 변환을 해야합니다.
만약 실수로 Integer나 다른 타입을 넣으면 더 복잡해지게 됩니다...
제네릭 사용 후
class Box<T> {
T item;
void setItem(T item) {this.item = item;}
T getItem() {return item;}
}
public class JavaChapter {
public static void main(String[] args) {
Box<String> sbox = new Box<>();
Box<Integer> ibox = new Box<>();
sbox.setItem("AAA");
ibox.setItem(1234);
System.out.println(sbox.getItem());
System.out.println(ibox.getItem());
}
}
제네릭을 사용한 코드입니다.
제네릭은 객체 선언시 타입을 미리 정할 수 있습니다.
따라서 타입변환을 할 필요가 없습니다.
'Java' 카테고리의 다른 글
ThreadPool (1) | 2023.10.08 |
---|---|
자바 컬렉션 (0) | 2023.09.27 |
java.lang 패키지 (0) | 2023.09.26 |
HashMap, HashTable, ConcurrentHashMap (0) | 2023.08.22 |
Java - 타입추론 Var (0) | 2023.08.17 |