본문 바로가기

Java

제네릭, 타입 더 유연하게 다루기

제네릭 (Generic)이란?

자바에서 타입 안정성 (type safety)을 보장하기 위한 기능

// 1. 제네릭은 클래스 또는 메서드에 사용 가능 (T는 컨벤션)
public class Generic<T> {
		// 2.선언해둔 타입 변수는 해당 클래스 내에서 특정한 타입이 들어갈 자리에 대신 들어갈 수 있음
    private T t;
    // 3.메서드의 리턴타입에 들어가는 것 역시 마찬가지
    public T get() {
        return this.t;
    }

    public void set(T t) {
        this.t = t;
    }

    public static void main(String[] args) {
    // 4.클래스에 선언했기 때문에 인스턴스를 만들기 위해서 타입변수에 들어갈 실제 변수의 값을 넣어줘야 합니다. 
    // 여기서는 String
        Generic<String> stringGeneric = new Generic<>();
    // 5.아까 타입변수로 대체 해뒀던 곳에 String이 들어가있기 때문에, 이와 같이 사용 할 수 있습니다.
        stringGeneric.set("Hello World");
				
        String tValueTurnOutWithString = stringGeneric.get();

        System.out.println(tValueTurnOutWithString);
    }
}

 

 

Generic 장점

1. 타입 언어에서 중복되거나 필요없는 코드를 줄여주는 것

2. 그러면서도 타입 안정성을 해치지 않는 것

3. 컴파일러가 타입 체크를 강하게 수행하여 런타임에 발생할 수 있는 에러를 사전에 방지 가능

※ 타입 언어 : 프로그래밍에서 변수를 사용할 때 해당 변수의 타입을 미리 지정하는 언어

 

Generic의 필요성

타입언어인 자바에서 타입 선언을 위한 중복되거나 필요없는 코드를 줄여주는 장점이 있음

또한 이런 장점이 있지만 타입 안정성을 해치지 않음

'Java' 카테고리의 다른 글

변수와 객체와 메모리의 관계  (0) 2023.07.24
오류와 예외  (0) 2023.04.09
변수 및 자료구조 타입에 대한 사용 예제  (0) 2023.04.07
default, static, 다형성  (0) 2023.04.05
추상 클래스와 인터페이스  (0) 2023.04.05