KOTLIN Как расширить суперкласс существующего класса - PullRequest
1 голос
/ 10 октября 2019

У меня есть вспомогательный класс для получения сетевых обновлений. Когда я пытаюсь создать вторичный конструктор, он выдает ошибку.

На основании документации для kotlin мне нужно расширить суперкласс. Но я получаю ту же ошибку.

Согласно документации, ConnectivityManager не имеет конструктора.

Я получаю эту ошибку:

Supertype initialization is impossible without primary constructor

Мой вспомогательный класс:

class InternetConnectivityHelper : ConnectivityManager.NetworkCallback() {

    constructor(context: Context, internetStatusChangedListener: InternetStatusChangedListener): super(){

    }
}

Я также попробовал следующее на основе одного из ответов stackoverflow:

class InternetConnectivityHelper : ConnectivityManager.NetworkCallback() {

    constructor(context: Context, internetStatusChangedListener: InternetStatusChangedListener): this(){

    }
}

1 Ответ

2 голосов
/ 10 октября 2019

Попробуйте вот так

Добавьте parentheses с именем класса для primary constructor.

class InternetConnectivityHelper() : ConnectivityManager.NetworkCallback() {

    constructor(context: Context, internetStatusChangedListener: InternetStatusChangedListener): this(){

    }
}

ИЛИ

Удалить parentheses из имени класса, чтобы определить secondary constructor без определения primary constructor.

class InternetConnectivityHelper : ConnectivityManager.NetworkCallback {

    constructor(context: Context, internetStatusChangedListener: InternetStatusChangedListener): super(){

    }
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...