-
Java - 제네릭(Generic)이란?Language/Java 2022. 12. 27. 16:31
제네릭이란?
제네릭이란?
제네릭(Generic)은 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법을 의미한다. 특정 클래스를 인스턴스화 할때, 구체적인 데이터 타입을 언급하는 방식이다.
제네릭의 사용
class Person<T> { public T info; } public class GenericDemo { public static void main(String[] args) { Person<String> p01 = new Person<String>(); Person<Integer> p02 = new Person<Integer>(); } }
제네릭 타입의 Person 클래스를 생성한 후, 서로 다른 타입으로 인스턴스를 생성하였다. 각각의 인스턴스를 생성할 때, <> 사이에 어떠한 데이터 타입을 사용했느냐에 따라 다른 데이터 타입을 가진 인스턴스를 생성할 수 있다.
p01.info와 p02.info의 데이터 타입을 결과적으로 다음과 같다.
1. p01.info -> String
2. p02.info -> Integer
public T info;
Person 클래스의 필드인 info의 데이터 타입은 T로 되어 있다. 그런데, T라는 데이터 타입은 존재하지 않는다.
class Person<T> { ... }
필드 info의 데이터 타입은 위 코드의 T에서 정해진다.
Person<String> p01 = new Person<String>();
Person 클래스의 T는 위 코드의 <> 안에 지정된 데이터 타입에 의해서 결정된다. 위 코드를 구체적으로 살펴보겠다.
Person<String> p01
위 코드는 변수 p01의 데이터 타입을 정의하고 있다.
new Person<String>();
위 코드는 인스턴스를 생성하고 있다. 즉, 클래스를 정의할 때는 info 필드의 데이터 타입을 확정하지 않고, 인스턴스를 생성할 때 데이터 타입을 지정하는 기능이 제네릭이다.
출처
ㆍ https://opentutorials.org/module/516/6237
728x90'Language > Java' 카테고리의 다른 글
Java - 제네릭(Generic)의 특성 (0) 2022.12.28 Java - 제네릭(Generic)을 사용하는 이유 (0) 2022.12.27 Java - 스트림(Stream) 최종 처리 메서드의 종류와 사용 방법(3) (0) 2022.12.01 Java - 스트림(Stream) 최종 처리 메서드의 종류와 사용 방법(2) (0) 2022.12.01 Java - 스트림(Stream) 최종 처리 메서드의 종류와 사용 방법(1) (0) 2022.12.01