728x90
제네릭은 객체의 static 멤버에 사용할 수 없다
타입변수는 인스턴스 변수로 간주되고, 모든 객체에 동일하게 동작해야 하는 static 필드 특성 상 사용할 수 없다.
제네릭의 문법
1. 다수의 타입변수를 사용할 수 있다.
public class Generic<T, U, E> {
//E를 출력타입, 나머지 값들을 입력 타입으로 사용
public E multiTypeMethod(T t, U u) {
...
return E;
}
Generic<Long, Integer, String> instance = new Generic();
instance.multiTypeMethodA(longVal, intVal);
}
2. 상속과 타입 관계는 그대로 적용된다.
- ex : 부모 클래스로 제네릭 타입변수를 지정하고, 그 안에 자식 클래스를 넘기는 것은 잘 동작한다
3. 와일드 카드를 통해 제네릭의 제한을 구체적으로 정할 수 있다
- 와일드 카드 : 이미 만들어진 제네릭 클래스나 메서드를 사용할때 이용하는 것
- <? extends T> : T와 그 자손들만 사용 가능
- <? super T> : T와 그 조상들만 사용 가능
- <?> : 제한 없음
4. 메서드를 스코프로 제네릭을 별도로 선언할 수 있다.
'Java' 카테고리의 다른 글
싱글 쓰레드와 멀티 쓰레드 (0) | 2023.05.29 |
---|---|
프로세스와 쓰레드 (0) | 2023.05.29 |
제네릭(Generic)의 개념 (0) | 2023.05.26 |
default 메서드, static 메서드 (0) | 2023.05.26 |
인터페이스와 추상 클래스의 차이 (0) | 2023.05.25 |