[kotlin] 코틀린 sealed 클래스의 정의와 사용법
코틀린에서는 sealed
클래스를 사용하여 상속을 제한할 수 있습니다. 이를 통해 미리 정의된 상속 구조를 갖는 클래스 계층을 만들 수 있습니다.
sealed 클래스의 정의
sealed class Result {
data class Success(val data: String) : Result()
data class Error(val error: Throwable) : Result()
}
위 예시에서 sealed
키워드를 사용하여 Result
클래스를 정의했습니다. 이 클래스는 Success
와 Error
두 하위 클래스를 가집니다.
sealed 클래스의 사용
fun handleResult(result: Result) {
when (result) {
is Result.Success -> {
println("Success: ${result.data}")
}
is Result.Error -> {
println("Error: ${result.error.message}")
}
}
}
handleResult
함수는 Result
클래스를 인자로 받아들이며, when
식을 사용하여 각 하위 클래스에 따라 다른 동작을 수행합니다.
이처럼 sealed
클래스를 사용하면 패턴 매칭과 함께 타입 안정성을 보장받을 수 있습니다.
요약
코틀린의 sealed
클래스는 상속을 제한하여 안전한 상속 구조를 유지하는 데 도움을 줍니다. 이를 통해 예상치 못한 하위 클래스의 추가로 인한 오류를 방지하고, 더욱 안정적인 코드를 작성할 수 있습니다.