제너릭

인철·2023년 10월 13일
0

Java

목록 보기
41/52

제너릭

제너릭

  • 클래스나 메서드의 타입 안정성을 높이기 위해 도입된 기능
  • 컴파일 시에 타입 체크 가능
  • 타입 안정성 보장
  • 클래스나 메서드가 다루는 데이터 타입 선언 가능
  • 다양한 테이터 타입에 대해 동일한 코드 사용 가능
  • 재사용성 높이고 형변환을 줄이며 오류를 컴파일 시에 발견 가능하게 해줌
  • 타입 매개변수를 사용하여 작성

주의할 점

  • 기본 데이터 타입 사용 불가능
  • 해당하는 래퍼 클래스 사용해야 함
  • 타입 인자를 명시적으로 지정해야 함
  • 상위 클래스의 제너틱 타입과 하위 클래스의 제너틱 타입이 일치해야 함
  // 제너릭을 사용한 클래스의 예시
class Box<T> {
    private T data; // 제너릭 데이터를 저장하는 private 변수

    public void setData(T data) { // 데이터를 설정하는 메서드
        this.data = data;
    }

    public T getData() { // 데이터를 반환하는 메서드
        return this.data;
    }
}

// 제너릭을 사용한 메서드의 예시
class Util {
    public static <T> T getFirstElement(T[] array) { // 제너릭 메서드
        if (array.length == 0) {
            return null; // 배열이 비어있으면 null 반환
        }
        return array[0]; // 배열의 첫 번째 요소 반환
    }
}

public class Main {
    public static void main(String[] args) {
        // 제너릭 클래스 활용
        Box<Integer> integerBox = new Box<>(); // Integer 타입의 Box 인스턴스 생성
        integerBox.setData(10); // 데이터 설정
        int data = integerBox.getData(); // 데이터 반환

        // 제너릭 메서드 활용
        String[] stringArray = {"Hello", "Generic", "World"}; // String 배열 선언 및 초기화
        String firstElement = Util.getFirstElement(stringArray); // 배열의 첫 번째 요소 가져오기

        System.out.println("Data in Box: " + data); // Box에 저장된 데이터 출력
        System.out.println("First Element in Array: " + firstElement); // 배열의 첫 번째 요소 출력
    }
}
profile
같은글이있어도양해부탁드려요(킁킁)

0개의 댓글