【发布时间】:2018-06-11 12:36:18
【问题描述】:
如何在 Kotlin 中创建一个具有嵌套数据类的泛型接口,该类使用这种泛型类型?
类似这样的:
interface Exemplary<T> {
data class Result(val value: T)
...
}
【问题讨论】:
标签: generics interface kotlin data-class
如何在 Kotlin 中创建一个具有嵌套数据类的泛型接口,该类使用这种泛型类型?
类似这样的:
interface Exemplary<T> {
data class Result(val value: T)
...
}
【问题讨论】:
标签: generics interface kotlin data-class
数据类也应该是通用的:
interface Exemplary<T> {
data class Result<T>(val value: T)
fun getResult(): Result<T>
}
【讨论】:
没有例如Exemplary<Int>.Result 但只是 Exemplary.Result;没有 T 就找不到 Result 像 Lukas 的回答那样通用。
但是还有一个替代方案:inner classes. 如果你想让T 被接口实例修复,例如
val x: Exemplary<Int> = ...
val y = new x.Result(3)
你需要创建类inner,然后是can't be data,你需要自己实现这些方法。
【讨论】: