제네릭(Generic)
제네릭은 클래스나 메서드에서 사용할 내부 데이터 타입을 컴파일 시에 지정하는 방법이다.
쉽게 말하자면 사용자가 사용하고픈 타입으로 사용할 수 있다는 것이다.
보통 같은 기능을 수행하는데 타입이 다를 경우에 사용한다.
public class MyClass<T>{ // 제네릭 클래스 생성
}
------main------
Myclass<String> ms = new MyClass<String>(); // 객체 생성당시에 T타입 결정
Myclass ms = new MyClass(); //동작은 하지만 명확하지 않음 사용될때 T타입 결정
<T>라고 적힌 T는 타입 변수라고 하며 타입이 결정되지 않은 미결정 타입이라고 생각하면 된다.
또한 T가 아닌 E나 다른 문자를 사용해도 문제가 되지 않는다.
이렇게 우리가 타입을 지정하지 않은 제네릭 클래스를 만들었다면, 이 클래스를 사용할 때는 실제 사용하고픈 타입을 명시해주어야 한다.
위 코드를 보면 필자는 String으로 타입을 명시해 주었기 때문에 ms 변수에 담긴 객체는 String타입을 사용하는 객체가 생성된 것이다.
만약 int를 사용하고 싶어서 Int 라고 적으면 오류를 발생 시키게 되는데 이 이유는 wrapper 클래스를 사용해주어야 하기 때문에 int를 사용하고 싶다면 Integer로 명시해 주어야 한다.
'자바' 카테고리의 다른 글
이너 인터페이스(inner interface) (0) | 2023.08.29 |
---|---|
이너 클래스(inner class) (0) | 2023.08.28 |
추상클래스, 인터페이스 (0) | 2023.08.28 |
접근지정자(access modifier) (0) | 2023.08.27 |
JDK 설치, 환경변수 설정 (0) | 2023.05.03 |