Continuous Challenge

[이것이 자바다] 제네릭 메소드 본문

Study/이것이 자바다

[이것이 자바다] 제네릭 메소드

응굥 2023. 4. 3. 22:42
728x90
728x90
제네릭 메소드는 타입 파라미터를 가지고 있는 메소드를 말한다.
public <A, B, ...> 리턴타입 메소드명(매개변수, ...) {...}

타입 파라미터가 메소드 선언부에 정의된다는 점에서 제네릭 타입과 차이가 있다.

제네릭 메소드는 리턴 타입 앞에 <> 기호를 추가하고 타입 파라미터를 정의한 뒤, 리턴 타입과 매개변수 타입에서 사용한다.

 

public <T> Box<T> boxing(T t) {...}

boxing() 메소드는 타입 파라미터로 <T> 를 정의하고 매개변수 타입과 리턴 타입에서 T를 사용한다.

(매개변수 : T, 리턴 타입 : T를 내용물로 갖는 Box 객체)

타입 파라미터 T는 매개값이 어떤 타입이냐에 따라 컴파일 과정에서 구체적인 타입으로 대체된다.

 

public class Box<T> {
	//필드
	private T t;
	
	//Getter 메소드
	public T get() {
		return t;
	}
	
	//Setter 메소드
	public void set(T t) {
		this.t = t;
	}
}
public class GenericExample {
	//제네릭 메소드
	public static <T> Box<T> boxing(T t) {
		Box<T> box = new Box<T>();
		box.set(t);
		return box;
	}

	public static void main(String[] args) {
		//제네릭 메소드 호출
		Box<Integer> box1 = boxing(100);
		int intValue = box1.get();
		System.out.println(intValue);

		//제네릭 메소드 호출
		Box<String> box2 = boxing("홍길동");
		String strValue = box2.get();
		System.out.println(strValue);
	}
}
100
홍길동

 

728x90
728x90
Comments