Enums eficientes em Kotlin: como fazer busca reversa por valor?
Olá a todos! Escrevo em Kotlin recentemente e me deparei com a seguinte tarefa.
Eu tenho uma classe enum para status de pedido:
```kotlin
enum class OrderStatus(val code: Int) {
PENDING(1),
PROCESSING(2),
SHIPPED(3),
DELIVERED(4),
CANCELLED(5)
}
```
Do banco de dados, recebo um código numérico de status (por exemplo, 3) e preciso obter o valor enum correspondente — `OrderStatus.SHIPPED`.
Sei que em Java frequentemente se usa um `HashMap` estático para busca reversa. Mas em Kotlin isso parece complicado. Tentei escrever uma função de extensão:
```kotlin
fun OrderStatus.Companion.fromCode(code: Int): OrderStatus? {
return values().find { it.code == code }
}
```
Mas isso funciona devagar, porque percorre todos os valores a cada vez. Para 5 status não é crítico, mas no projeto há um enum com 30+ valores, e temo que em grandes volumes de dados isso vá travar.
Pergunta: como implementar corretamente uma busca reversa (reverse lookup) eficiente em enums do Kotlin? Se
No answers yet.
Faça login para deixar uma resposta