Home > Net >  How to make a function use only predefined constants in its constructor parameters in Kotlin?
How to make a function use only predefined constants in its constructor parameters in Kotlin?

Time:12-27

I've been looking around trying to figure this out. But even reading the source code of some libraries didn't give me a good understanding of how to do this:

I have a function in Kotlin :

fun setCustomMode(customMode: Int) {
}

And I have a few Int constants: CUSTOM_MODE_1, CUSTOM_MODE_2

How can I allow the function setCustomMode to only accept the constants above. I searched a lot but I can't even seem to know how to ask the question properly on Google. Please help me.

CodePudding user response:

You can achive this by declaring enum class. Sample is below:

enum class Modes(val id: Int) {
    CUSTOM_MODE_1(123), //Desired int
    CUSTOM_MODE_2(456) //Another desired int
    //...
}

fun setCustomMode(modes: Modes) {
    println("Name of the mode is "   modes.name)
    println("ID of the mode is "   modes.id)
}

fun main() {
    setCustomMode(Modes.CUSTOM_MODE_1) //Anything from Modes class
}
  • Related