Java
Generic
파지티브헌
2023. 3. 8. 15:06
Java Generic은 자바에서 제공하는 타입 시스템의 일종으로, 클래스, 인터페이스, 메소드 등에서 사용할 수 있는 타입 매개변수를 정의하여 타입 안정성을 보장하는 기능입니다. 타입 안정성을 보장하는 이유는 컴파일러에서 오류를 잡아내어 런타임 에러를 방지하고, 코드의 재사용성과 가독성을 높여줍니다.
Java Generic을 사용하기 위해서는 타입 매개변수를 선언하여 클래스, 인터페이스, 메소드 등에서 사용해야 합니다. 타입 매개변수는 대문자 알파벳으로 표시되며, 일반적으로 T, E, K, V 등으로 사용됩니다.
예를 들어, 다음과 같이 제네릭 클래스를 작성할 수 있습니다.
public class MyGenericClass<T> {
private T value; public MyGenericClass(T value) {
this.value = value;
}
public T getValue() {
return value;
}
public void setValue(T value) {
this.value = value;
}
}
위 코드에서 T는 타입 매개변수입니다. MyGenericClass 클래스는 T 타입의 값을 저장하고 반환하는 메소드를 가지고 있습니다. 이렇게 작성된 제네릭 클래스는 다음과 같이 사용할 수 있습니다.
MyGenericClass<String> myString = new MyGenericClass<>("Hello World");
String value = myString.getValue(); // "Hello World"
위 코드에서 MyGenericClass 클래스를 생성할 때, 타입 매개변수 T에 String 타입을 지정하였습니다. 이렇게 함으로써 MyGenericClass 클래스에서 사용되는 모든 T 타입은 String 타입으로 고정되어 있습니다. 따라서 getValue() 메소드에서 반환되는 값은 String 타입으로 보장됩니다.
Java Generic은 이외에도 다양한 용도로 활용될 수 있습니다. 예를 들어, 컬렉션 클래스에서도 타입 매개변수를 사용하여 타입 안정성을 보장하고, 다양한 타입의 요소를 저장하고 검색할 수 있습니다.