Java

제네릭(Generic) 2

KJihun 2023. 5. 26. 17:45
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. 와일드 카드를 통해 제네릭의 제한을 구체적으로 정할 수 있다

  • 와일드 카드 : 이미 만들어진 제네릭 클래스나 메서드를 사용할때 이용하는 것
    1. <? extends T> : T와 그 자손들만 사용 가능
    2. <? super T> : T와 그 조상들만 사용 가능
    3. <?> : 제한 없음

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