是否可以在接口(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)