В следующем коде я добавляю забавный 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)
}
}
Сигнатура функции должна быть: fun my get(mContext: Context): WiFiDef
this не является типом, он относится к текущему экземпляру класса, в котором вы находитесь. Метод не может возвращаться с типом this так же, как он не может возвращаться с типом x, где x является переменной.
Вместо этого, как @Angel Koh уже указал в комментарии, вы должны сделать свой метод возвращаемым типом, который соответствует типу выражения, которое вы возвращаете в нем, которым в данном случае является WiFiDef, так как это то, что ваш метод getWiFi возвращает:
fun myGet(mContext: Context): WiFiDef {
return WiFiHelper(mContext).getWiFi()
}
изменить: это на: WifiDef