Почему это не может быть типом возврата в Kotlin? - PullRequest
0 голосов
/ 29 апреля 2018

В следующем коде я добавляю забавный myGet в класс данных WiFiDef, я надеюсь, что забавный 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 голосов
/ 29 апреля 2018

this не является типом, это относится к текущему экземпляру класса, в котором вы находитесь. Метод не может возвращаться с типом this, как это не может быть с x где x является переменной.

Вместо этого, как @Angel Koh уже указывал в комментарии, вы должны сделать так, чтобы у вашего метода был тип возврата, соответствующий типу выражения, которое вы возвращаете в нем, который в данном случае равен WiFiDef, так как вот что возвращает ваш getWiFi метод:

fun myGet(mContext: Context): WiFiDef {
    return WiFiHelper(mContext).getWiFi()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...