#34 kotlin basic: enum class
This commit is contained in:
41
kotlin-basic/src/main/kotlin/12_enum.kt
Normal file
41
kotlin-basic/src/main/kotlin/12_enum.kt
Normal file
@@ -0,0 +1,41 @@
|
||||
enum class PaymentStatus(val label: String): Payable {
|
||||
UNPAID("미지급") {
|
||||
override fun isPayable(): Boolean = true
|
||||
},
|
||||
PAID("지급 완료") {
|
||||
override fun isPayable(): Boolean = false
|
||||
|
||||
},
|
||||
FAILED("지급 실패") {
|
||||
override fun isPayable(): Boolean = false
|
||||
|
||||
},
|
||||
REFUNDED("환불") {
|
||||
override fun isPayable(): Boolean = false
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
interface Payable {
|
||||
fun isPayable(): Boolean
|
||||
}
|
||||
|
||||
fun main() {
|
||||
|
||||
println(PaymentStatus.REFUNDED.label)
|
||||
|
||||
if (PaymentStatus.UNPAID.isPayable()) {
|
||||
println("결제 가능 상태")
|
||||
}
|
||||
|
||||
val paymentStatus = PaymentStatus.valueOf("PAID")
|
||||
println(paymentStatus.label)
|
||||
|
||||
if (paymentStatus == PaymentStatus.PAID) {
|
||||
println("결제 완료 상태")
|
||||
}
|
||||
|
||||
for (status in PaymentStatus.values()) {
|
||||
println("[${status.name}](${status.label}) : ${status.ordinal}")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user