home
자바
home
🙃

제네릭

강의명
김영한의 실전 자바 - 중급 2편
강의순서
1
과목
☕자바
수강상태
진행중

제네릭(Generic)

일반적인, 범용적인이라는 영어 단어 뜻
특정 타입에 속한 것이 아니라 일반적으로, 범용적으로 사용할 수 있다는 뜻

제네릭 타입(Generic Type)

클래스나 인터페이스르 정의할 때 타입 매개변수를 사용하는 것
제네릭 클래스, 제네릭 인터페이스를 모두 합쳐서 제네릭 타입이라 한다.
Ex)
class GenericBox<T> { private T t; }
Java
복사
여기에서 GenericBox<T>를 제네릭 타입이라 한다.

타입 매개변수(Type Parameter)

제네릭 타입이나 메서드에서 사용되는 변수로, 실제 타입으로 대체된다.
ex) GenericBox<T>
T를 타입 매개변수라 한다.

타입 인자(Type Argument)

제네릭 타입을 사용할 때 제공되는 실제 타입이다.
ex) GenericBox<Integer>
Integer를 타입 인자라 한다.
기본형(inte, double, …)은 사용할 수 없다. 대신에 래퍼 클래스(Integer, Double)를 사용

제네릭 명명 관례

일반적인 변수명처럼 소문자로 사용해도 문제는 없음
일반적으로 대문자를 사용하고 용도에 맞는 단어의 첫글자를 사용하는 관례를 따름
주로 사용하는 키워드 E - Element K - Key N - Number T - Type V - Value S,U,V etc. - 2nd, 3rd, 4th types

타입 추론

GenericBox<Integer> integerBox = new GenericBox<Integer>(); // 타입 직접 입력 GenericBox<Integer> integerBox2 = new Generic<>(); // 타입 추론
Java
복사
자바 컴파일러가 타입을 추론할 수 있는 상황에만 가능. (읽을 수 있는 타입 정보가 주변에 있어야 추론할 수 있음)

제네릭의 타입 매개변수와 타입 인자

메서드의 매개변수는 사용할 값에 대한 결정을 나중에 미루는 것이고, 제네릭의 타입 매개변수는 사용할 타입에 대한 결정을 나중으로 미루는 것이다.
메서드는 매개변수에 인자를 전달해서 사용할 값을 결정한다.
제네릭 클래스는 타입 매개변수에 타입 인자를 전달해서 사용할 타입을 결정한다.