使用Kotlin的通用接口中的嵌套数据类

时间:2018-06-11 12:36:19

标签: generics interface kotlin data-class

如何使用在Kotlin中使用此泛型类型的嵌套数据类创建通用接口?

这样的事情:

interface Exemplary<T> {

    data class Result(val value: T)

    ...
}

2 个答案:

答案 0 :(得分:2)

此外,数据类应该是通用的:

interface Exemplary<T> {

    data class Result<T>(val value: T)

    fun getResult(): Result<T>
}

答案 1 :(得分:0)

没有例如Exemplary<Int>.Result但只是Exemplary.Result;在Lukas的回答中没有T通用的情况下找不到Result

但还有另一种选择:inner classes.如果您希望接口实例修复T,例如

val x: Exemplary<Int> = ...
val y = new x.Result(3)

你需要制作课程inner,然后才能can't be data,你需要自己实施这些方法。