티스토리 뷰

Java

자바 - 제네릭에 대한 심화적 이해

Kodong's blog 2025. 8. 29. 20:26

■ 제네릭이란?

클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 문법이다.

 

ArrayList<String> list = new ArrayList<>();

자바에서 자주 쓰는 구문이다. 

여기에 있는 <> (꺾쇠 괄호 )가 바로 제네릭이다. 이 괄호 안에는 타입명을 기재한다(여기서는 String이다 ).

그리고, 이 <> (꺾쇠 괄호)를 "다이아몬드 연산자"라고 한다. 

 

● 제네릭 타입 매개변수

다이아몬드 연산자(<>)에 식별자를 넣어 이를 파라미터화할 수 있다(타입 매개변수).

타입 매개변수는 제네릭을 이용한 클래스나 메소드를 설계할 때 사용된다.

예제를 살펴보자)

class FruitBox<T> {
    List<T> fruits = new ArrayList<>();

    public void add(T fruit) {
        fruits.add(fruit);
    }
}
// 제네릭 타입 매개변수에 문자열 타입을 할당
FruitBox<String> intBox = new FruitBox<>(); 

// 클래스도 넣어줄 수 있다. (Apple 클래스가 있다고 가정)
FruitBox<Apple> intBox = new FruitBox<Apple>();

이런식으로 사용할 수 있다.

 

또,

제네릭에서 할당 받을 수 있는 타입은 Reference 타입 뿐이다. 즉, int형 이나 double형 같은 자바 원시 타입(Primitive Type)을 제네릭 타입 파라미터로 넘길 수 없다는 말이다.

 

 

 

더 자세한 내용은 이 문법을 실제 프로젝트를 사용하면서 만났을 때 다시 와서 추가정리하도록 하겠다.

 

+) (20251013)

추가적인 설명을 하자면, 

우리가 String 타입의 ArrayList를 만들고 싶을때는,

List<String> arrayList = new ArrayList<>(); 이렇게 선언하는데,

이것도 어떻게 보면 ArrayList 클래스를 만들때, 받는 매개변수에 <T> 형식을 사용하였기 때문에 우리가 제네릭(<>)에 타입을 명시해주어야 하는것이다.

 

 

참고 ↓ )

https://inpa.tistory.com/entry/JAVA-☕-제네릭Generics-개념-문법-정복하기 

 

 

-----------------------------------

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
글 보관함