[kotlin] 자바에서 코틀린 제네릭 사용하기

자바와 코틀린은 완전히 다른 언어이지만, 코틀린은 자바 라이브러리와의 상호운용성을 보장하기 위해 자바의 여러 기능을 지원합니다. 오늘은 자바에서 사용되는 제네릭을 코틀린에서 어떻게 사용하는지 알아보겠습니다.

자바 제네릭 클래스 사용하기

우선 자바에서 제네릭 클래스를 작성하는 방법을 알아봅시다.

public class Box<T> {
    private T value;

    public T getValue() {
        return value;
    }

    public void setValue(T value) {
        this.value = value;
    }
}

위 예제는 제네릭 클래스 Box를 정의하는데, 이는 어떠한 타입의 객체도 담을 수 있는 상자를 나타냅니다. 타입 매개변수 T는 실제 타입으로 대체될 것입니다.

코틀린에서 자바 제네릭 클래스 사용하기

이제 위에서 작성한 Box클래스를 코틀린에서 사용하는 방법을 알아봅시다.

val box = Box<Int>()
box.setValue(42)
val value: Int = box.getValue()

코틀린에서 자바 제네릭 클래스를 사용할 때는 타입 인자를 꺽쇠(< >) 안에 명시하여 객체를 생성합니다. 위 예제에서 Box<Int>()Box클래스에 Int 타입을 넣어 생성한 것이며, 이후에는 자연스럽게 Int 타입으로 값을 설정하고 가져올 수 있습니다.

자바 제네릭 메서드 사용하기

자바에서 제네릭 메서드를 작성하는 방법을 살펴봅시다.

public class Utils {
    public static <T> T doSomething(T value) {
        // do something with value
        return value;
    }
}

위의 doSomething 메서드는 제네릭 메서드이며, 입력과 반환 타입으로 제네릭을 사용하고 있습니다.

코틀린에서 자바 제네릭 메서드 사용하기

코틀린에서도 위의 doSomething 메서드를 사용할 수 있습니다.

val result: Int = Utils.doSomething(42)

위 예제에서는 doSomething 메서드를 호출하고 있으며, 메서드의 반환 타입을 통해 코틀린은 결과값의 타입을 추론합니다.

결론

코틀린에서 자바의 제네릭 클래스와 메서드를 사용하는 것은 매우 간단하며, 코틀린의 상호운용성을 고려하여 자바로 작성된 코드를 쉽게 사용할 수 있습니다. 제네릭을 활용하여 각각의 타입에 대해 보다 안전하고 효율적으로 프로그래밍할 수 있습니다.

위의 예제로 코틀린에서 자바의 제네릭을 어떻게 사용하는지 알아보았습니다. 코드를 작성하면서 쉽게 사용할 수 있도록 실습해보시기 바랍니다.

더 자세한 정보는 코틀린 공식 문서를 참고하세요.