Да, это возможно, но вам нужно переместить функции method0
и method1
из класса Enum
:
enum class Enum(val someValue: Int, val someMethod: () -> Unit)
{
FIRST_VALUE(0, ::method0), // pass reference to the function
SECOND_VALUE(1, { method1() }); // pass lambda and call `method1()` function in it
}
fun method0() {
}
fun method1() {
}
Вы можете передать ссылку на функцию как лямбда-аргумент, как показано в примере FIRST_VALUE
, или лямбду и вызвать функцию в ней - как показано в SECOND_VALUE
примере.