[kotlin] 코틀린과 자바 제네릭 사용하기
코틀린과 자바는 둘 다 제네릭(Generics)을 지원하는 언어로, 제네릭을 사용하여 타입을 안정적으로 다룰 수 있습니다. 이 기능을 이용하면 코드의 안정성을 높이고, 중복을 줄일 수 있습니다.
코틀린에서의 제네릭 사용하기
코틀린에서 제네릭을 사용하기 위해서는 클래스나 함수 선언 시에 타입 매개변수를 정의할 수 있습니다.
class Box<T>(val value: T)
위의 예제에서 Box
클래스는 타입 T
를 받아서 value
라는 속성으로 가지고 있습니다. 이렇게 선언된 Box
클래스는 다양한 타입을 받아들일 수 있습니다.
val box = Box(5) // Int 타입의 Box
val box = Box("hello") // String 타입의 Box
자바에서의 제네릭 사용하기
자바에서의 제네릭은 코틀린과 유사하게 사용할 수 있습니다.
public class Box<T> {
private T value;
public Box(T value) {
this.value = value;
}
}
위의 예제에서 Box
클래스는 제네릭 타입 T
를 받아서 value
라는 필드로 가지고 있습니다.
Box<Integer> intBox = new Box<>(5); // Integer 타입의 Box
Box<String> strBox = new Box<>("hello"); // String 타입의 Box
제네릭 메서드 만들기
코틀린과 자바에서는 제네릭 메서드를 정의할 수 있습니다.
코틀린에서의 예시:
fun <T> singletonList(item: T): List<T> {
return listOf(item)
}
자바에서의 예시:
public <T> List<T> singletonList(T item) {
return Collections.singletonList(item);
}
제네릭을 사용하여 타입을 안정적으로 다루면, 런타임에 발생할 수 있는 에러를 미리 방지할 수 있고, 중복을 피할 수 있습니다.
제네릭은 타입 안정성을 제공하므로, 프로그램 오류를 줄일 수 있으며, 클라이언트 코드의 가독성과 안정성을 높일 수 있습니다.
제네릭은 코드를 더 간결하게 작성하고, 재사용성을 높일 수 있는 강력한 도구입니다.