我试图用简单的构造函数实现这个枚举,如下所示:
enum class WithGraphicKind(val innerClass: Class<*>) {
CONTACT(Contact::class.java), SALE(Sale::class.java);
}
Run Code Online (Sandbox Code Playgroud)
由于两者Contact和Sale类都实现了一个公共接口WithGraphics,我想将构造函数键入innerClass: Class<WithGraphics>,但是这不起作用.我也试过Class<* : WithGraphics>和其他人一样,但没有任何作用.我也没有在官方文档中找到任何提示:https://kotlinlang.org/docs/reference/generics.html
您需要声明站点差异Kotlin Generics:声明站点差异
如果你告诉编译器你只使用WithGraphics,编译器允许使用WithGraphics的任何子类型
enum class WithGraphicKind(val innerClass: Class<out WithGraphics>) {
CONTACT(Contact::class.java), SALE(Sale::class.java);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
852 次 |
| 最近记录: |