You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin中为何不能用this作为返回类型?编译报错如何修复?

问题分析与修复方案

嘿,我来帮你搞定这个编译错误的问题~

报错原因

你在myGet函数里把返回类型写成了this,这在Kotlin里是不合法的:

  • this是用来指代当前类的实例对象的,它不是一个类型名称;而函数声明返回类型时,必须明确指定具体的类型(比如WiFiDef),编译器看到this会识别不出你要返回的类型,所以就抛出了“Type expected”的错误。

修复方案

只需要把函数的返回类型从this改成WiFiDef就可以了,因为WiFiHelper.getWiFi()返回的正好是WiFiDef类型的对象,和声明的返回类型完全匹配。

修复后的完整代码如下:

data class WiFiDef( val isChecked: Boolean = true, val name: String, val status: Boolean = false ) : DeviceDef { 
    fun myGet(mContext: Context) : WiFiDef { // 这里把this改成WiFiDef
        return WiFiHelper(mContext).getWiFi() 
    } 
} 
class WiFiHelper(val mContext: Context) { 
    fun getWiFi(): WiFiDef {
        // 这里补充你的getWiFi实现逻辑
        return WiFiDef(name = "TestWiFi")
    }
}

这样编译就能通过啦,本质就是搞清楚“类型”和“实例对象”的区别——函数返回类型要写类型名,而this是实例的引用,不能用来当类型用~

内容的提问来源于stack exchange,提问作者HelloCW

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:24:45