Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
KOTLIN如何扩展现有类的超类_Kotlin - Fatal编程技术网

KOTLIN如何扩展现有类的超类

KOTLIN如何扩展现有类的超类,kotlin,Kotlin,我有一个助手类来获取网络更新。当我尝试创建二级构造函数时,它会抛出一个错误 基于kotlin的文档,我需要扩展这个超类。但我也犯了同样的错误 根据文档,ConnectivityManager没有构造函数 我得到这个错误: 没有主构造函数,超类型初始化是不可能的 我的助手类: class InternetConnectivityHelper : ConnectivityManager.NetworkCallback() { constructor(context: Context, in

我有一个助手类来获取网络更新。当我尝试创建二级构造函数时,它会抛出一个错误

基于kotlin的文档,我需要扩展这个超类。但我也犯了同样的错误

根据文档,
ConnectivityManager
没有构造函数

我得到这个错误:

没有主构造函数,超类型初始化是不可能的

我的助手类:

class InternetConnectivityHelper : ConnectivityManager.NetworkCallback() {

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

    }
}
我还根据stackoverflow的一个答案尝试了以下方法:

class InternetConnectivityHelper : ConnectivityManager.NetworkCallback() {

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

    }
}
像这样试试

主构造函数添加带有类名的
括号

class InternetConnectivityHelper() : ConnectivityManager.NetworkCallback() {

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

    }
}
class InternetConnectivityHelper : ConnectivityManager.NetworkCallback {

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

    }
}

从类名中删除
括号
,以定义
辅助构造函数
,而不定义
主构造函数

class InternetConnectivityHelper() : ConnectivityManager.NetworkCallback() {

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

    }
}
class InternetConnectivityHelper : ConnectivityManager.NetworkCallback {

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

    }
}


您可以尝试通过向原始类添加功能来扩展Kotlin扩展。