Avatar ·

Kotlin में कुशल एनम: वैल्यू द्वारा रिवर्स लुकअप कैसे करें?

सभी को नमस्ते! मैं हाल ही में Kotlin में लिख रहा हूँ और मुझे एक समस्या का सामना करना पड़ा। \n\nमेरे पास ऑर्डर स्टेटस के लिए एक enum क्लास है:\n\n```kotlin\nenum class OrderStatus(val code: Int) {\n PENDING(1),\n PROCESSING(2),\n SHIPPED(3),\n DELIVERED(4),\n CANCELLED(5)\n}\n```\n\nडेटाबेस से मुझे स्टेटस का एक न्यूमेरिक कोड मिलता है (उदाहरण के लिए, 3), और मुझे संबंधित enum वैल्यू — `OrderStatus.SHIPPED` प्राप्त करने की आवश्यकता है। \n\nमुझे पता है कि Java में अक्सर रिवर्स लुकअप के लिए एक स्टैटिक `HashMap` बनाया जाता है। लेकिन Kotlin में यह बोझिल लगता है। मैंने एक एक्सटेंशन फंक्शन लिखने की कोशिश की:\n\n```kotlin\nfun OrderStatus.Companion.fromCode(code: Int): OrderStatus? {\n return values().find { it.code == code }\n}\n```\n\nलेकिन यह धीमी गति से काम करता है, क्योंकि यह हर बार सभी वैल्यूज पर लूप करता है। 5 स्टेटस के लिए यह क्रिटिकल नहीं है