Language/Java

[JAVA] 제네릭 클래스, 제네릭 메소드

모리노아진 2020. 11. 14. 20:59

제네릭 클래스(Generic Class)

public class Test<T> {
	private T t;

	public T getT() {
		return t;
	}

	public void setT(T t) {
		this.t = t;
	}
}

 

제네릭 메소드(Generic Method)

public class Test {

	public<V> V test(V v) {
		return null;
	}
}

T extends 상위 클래스 : T의 범위를 상위 클래스의 서브타입으로 제한

T super 하위 클래스 : T의 범위를 하위 클래스의 슈퍼타입으로 제한

 

 

 

WildCard ? 는 제네릭을 사용한 클래스 또는 메소드를 매개변수 또는 리턴타입으로 사용할 때

<?><? Super 하위 클래스><? extends 상위 클래스>

와 같이 나누어 표현한다. 메소드에 따라 제네릭 타입을 사용하는 목적이 다르므로 명시하여 오류를 방지하는 목적을 가진다.