[kotlin] 코틀린 sealed 클래스의 정의와 사용법

코틀린에서 sealed 클래스는 특별한 종류의 클래스로, 그 클래스를 상속하는 하위 클래스들을 제한하는 역할을 합니다. 이는 특정 타입의 서브클래스가 오직 그 sealed 클래스 자체 내에서만 존재할 수 있음을 보장합니다.

sealed 클래스의 정의

코틀린에서 sealed 클래스는 sealed 키워드로 선언됩니다. 아래는 sealed 클래스를 정의하는 간단한 예제입니다.

sealed class Result
class Success(val data: String) : Result()
class Error(val message: String) : Result()

위의 예제에서 Result는 sealed 클래스이며, SuccessError는 이를 상속하는 하위 클래스입니다.

sealed 클래스의 활용

sealed 클래스는 주로 when 식과 함께 사용됩니다. 아래는 sealed 클래스를 이용한 when 식의 예제입니다.

fun process(result: Result) {
    when (result) {
        is Success -> {
            println("Success: ${result.data}")
        }
        is Error -> {
            println("Error: ${result.message}")
        }
    }
}

위 코드에서 process 함수는 Result sealed 클래스를 매개변수로 받으며, when 식을 통해 각 서브클래스에 대한 처리를 수행합니다.

sealed 클래스는 패턴 매칭과 함께 사용할 때 강력한 도구가 되며, 코드의 안정성을 높일 수 있습니다.

결론

코틀린 sealed 클래스는 특정 타입의 서브클래스가 제한적인 범위 내에서 사용될 수 있도록 하는 강력한 도구입니다. 이를 통해 안정성을 높일 수 있고, 코드를 더욱 견고하게 작성할 수 있습니다.

더 많은 정보를 원하신다면, 코틀린 공식 문서를 참고하시기 바랍니다.