是否可以在接口(interface)内使用枚举作为函数声明的参数?
例如有:

class FloatingToastDialog(val messageType: FloatingToastType) {

    companion object {

        enum class FloatingToastType { Alert, Warning, Error }
    }
    ...
}

我想在接口(interface)中声明一个将枚举作为输入参数的函数,如下所示:
interface SecurityCallbacks {

    fun showFloatingToast(message: String, msgType: FloatingToastType)

}

但是编译器无法通过说来导入枚举
Unresolved reference :FloatingToastType

是否可以不使用普通票或其他类似的欺诈手段来做到这一点?

最佳答案

如果以这种方式声明,则必须将其引用为

fun showFloatingToast(message: String, msgType: FloatingToastDialog.Companion.FloatingToastType)

要么
import FloatingToastDialog.Companion.FloatingToastType
...

fun showFloatingToast(message: String, msgType: FloatingToastType)

您可以在类中直接声明它并删除Companion:
class FloatingToastDialog(val messageType: FloatingToastType) {

    enum class FloatingToastType { Alert, Warning, Error }
    ...
}


fun showFloatingToast(message: String, msgType: FloatingToastDialog.FloatingToastType)

09-25 19:22