[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 클래스이며, Success
와 Error
는 이를 상속하는 하위 클래스입니다.
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 클래스는 특정 타입의 서브클래스가 제한적인 범위 내에서 사용될 수 있도록 하는 강력한 도구입니다. 이를 통해 안정성을 높일 수 있고, 코드를 더욱 견고하게 작성할 수 있습니다.
더 많은 정보를 원하신다면, 코틀린 공식 문서를 참고하시기 바랍니다.