为什么这不能作为Kotlin的回归类型?

时间:2018-04-29 03:49:45

标签: android kotlin

在下面的代码中,我向数据类WiFiDef添加了一个有趣的myGet,我希望有趣的myGet可以返回WiFiDef的对象。

但是这些代码无法编译,错误提示是预期的类型,为什么?我该如何解决?谢谢!

data class WiFiDef(
        val isChecked: Boolean = true,
        val name: String,
        val status: Boolean = false
) : DeviceDef {
    fun myGet(mContext: Context) : this {     //Error hint: Type expected
        return WiFiHelper(mContext).getWiFi()
    }
}   


class WiFiHelper(val mContext: Context) {

    fun getWiFi(): WiFiDef {      
        ..
        return WiFiDef(isChecked =aIsChecked, name= name, status = isEnabled)
    }

}

1 个答案:

答案 0 :(得分:2)

this不是类型,它指的是您所在类的当前实例。一个方法无法返回类似this的类型不能使用x,其中x是变量。

相反,正如@Angel Koh已经在评论中指出的那样,你应该让你的方法具有与你在其中返回的表达式类型匹配的返回类型,在这种情况下是{{1因为那是WiFiDef方法返回的内容:

getWiFi