-> 이렇게 할 경우 dto2의 인스턴스 변수의 타입이 StringBuilder인지 StringBuffer 인지 혼동될수가 있다.
그래서 이런경우는 instanceOf라는 예약어를 사용하여 타입을 점검해야한다.
-> 그래서 이런 타입 형 변환에서 발생할 수 있는 문제점을 "사전"에 없애기 위해 만들어진것이 제네릭이다.
-> 제네릭을 이용해서 형변환이 필요 없는것을 볼수 있다. 명시적으로 타입을 지정할 때 사용하는 것이 제네릭이다.
* 제네릭 타입의 이름
E : 요소 (Element, 자바 컬렉션(Collection)에서 주로 사용)
K : 키
N : 숫자
T : 타입
V : 값
S, U, V : 두번째, 세번째, 네번째에 선언된 타입
public void wildcardMethod(wildcardGeneric<?> c){
Object value = c.getWildcard();
System.out.println(value);
}
-> ?를 이용한 것은 메소드의 매개 변수로만 사용하는 것이 좋다.
< ? extend s Car> c
-> 이런식으로 정의한것은 제네릭 타입으로 Car을 상속받은 모든 클래스를 사용할 수 있다는 것을 의미
<T extends Comparable<T>> 는 "자신과 비교될 수 있는 모든 타입 T" 라고 읽는다.
댓글 없음:
댓글 쓰기