JAVA/포스팅

자바 제네릭 클래스의 선언

짜집퍼박사(짜박) 2023. 11. 19. 00:17

제네릭스(Generics) 클래스는 다양한 타입의 객체를 다룰 수 있도록 일반화된 클래스입니다. 제네릭 클래스를 선언할 때에는 클래스 이름 뒤에 <T>와 같이 타입 파라미터를 추가하여 선언합니다. 여기서 T는 타입을 나타내며, 실제 사용될 때 구체적인 타입으로 대체됩니다.

 

제네릭 클래스의 선언 형식은 다음과 같습니다

public class ClassName<T> {
    // 클래스 내용
}

여기서 T는 타입 파라미터이며, 클래스 내부에서 필드, 메서드, 생성자 등에서 이 타입을 사용할 수 있습니다.

예를 들어, 제네릭 클래스를 사용하여 리스트를 구현하는 간단한 예제를 살펴보겠습니다.

public class GenericList<T> {
    private List<T> elements;

    public GenericList() {
        this.elements = new ArrayList<>();
    }

    public void addElement(T element) {
        elements.add(element);
    }

    public T getElement(int index) {
        return elements.get(index);
    }

    public int size() {
        return elements.size();
    }
}

위의 GenericList 클래스는 제네릭을 사용하여 어떤 타입의 요소도 저장할 수 있는 리스트를 나타냅니다. 사용 예시는 다음과 같습니다.

public class GenericListExample {
    public static void main(String[] args) {
        // String 타입의 GenericList
        GenericList<String> stringList = new GenericList<>();
        stringList.addElement("Apple");
        stringList.addElement("Banana");
        stringList.addElement("Orange");

        System.out.println("String List Size: " + stringList.size());
        System.out.println("Element at index 1: " + stringList.getElement(1));

        // Integer 타입의 GenericList
        GenericList<Integer> integerList = new GenericList<>();
        integerList.addElement(42);
        integerList.addElement(99);

        System.out.println("Integer List Size: " + integerList.size());
        System.out.println("Element at index 0: " + integerList.getElement(0));
    }
}

이렇게 제네릭 클래스를 사용하면, 각각의 객체마다 타입 변환 없이도 유연하게 다양한 타입의 요소를 다룰 수 있습니다.

 

With ChatGPT