TIL
TIL : 2024/08/01 Java Generic
banasu0723
2024. 8. 1. 23:57
TIL 쓰기 전 오늘의 목표 !
- 목표
- 3주차 과제하고 4주차 강의까지 듣기 → ok
- 알고리즘 코드카타 2문제 풀기 → ok
< 17. Generic >
- Generic 제네릭
- 제네릭은 클래스 또는 메서드에 사용 가능
- 제네릭 타입을 원시 타입이라 한다
- static 필드는 사용 불가, 배열도 사용 불가
// 1. 제네릭은 클래스 또는 메서드에 사용가능, <>안에 타입 명시, 이때 T를 타입변수라고 한다
public class Generic<T> {
// 2. 내부 필드에 타입 저장됨 main 에서 선언된..
private T t;
// 3.
public T get() {
return this.t;
}
public void set(T t) {
this.t = t;
}
public static void main(String[] args) { //T에 String이 들어간다
// 4.
Generic<String> stringGeneric = new Generic<>();
// 5.
stringGeneric.set("Hello World");
String tValueTurnOutWithString = stringGeneric.get();
System.out.println(tValueTurnOutWithString);
}
}
- 다수의 타입 변수 사용 가능
public class Generic<T, U, E> {
public E multiTypeMethod(T t, U u) { ... }
}
Generic<Long, Integer, String> instance = new Generic();
instance.multiTypeMethod(longVal, intVal);
- 다형성 즉 상속과 타입의 관계는 그대로 적용
- 와일드카드를 통해 제네릭의 제한을 구체적으로 정할 수 있음
-
- <? extends T> : T와 그 자손들만 사용 가능
- <? super T> : T와 그 조상들만 가능
- <?> : 제한 없음
-
public class ParkingLot<T extends Car> { ... }
ParkingLot<BMW> bmwParkingLot = new ParkingLot();
ParkingLot<Iphone> iphoneParkingLot = new ParkingLog(); // error!
< 18. Java의 Collection 정리 >
※ Wrapper 객체 : 원시 타입을 추상화시킴
Integer num = new Integer(17); // Boxing
int n = num.intValue(); // UnBoxing
Character ch = 'X'; // AutoBoxing
char c = ch; // AutoUnBoxing
오늘 팀과제가 나왔다 !
회의를 하다보니 시간이 훌쩍 흘렀다..........
알고리즘 코드타카는 2문제 풀었고, 이문제들 모두 쉬워서 풀이는 skip 한다 !
내일 팀과제 코드를 짜고 강의를 마무리할 계획이다~!