如果用Kotlin编写了接口,为什么必须实现接口中的具体方法?

3
我已经用Kotlin编写了一个带有具体方法的接口,实现它的类正在询问是否需要覆盖它。如果我用Java编写相同的接口,它就能正常工作。请问这是什么问题?
在Kotlin中:
interface BottomSheet {

companion object{

    val BOTTOMSHEET_ADAPTER:String="BOTTOMSHEET_ADAPTER"
    val FILTER_ADAPTER:String="FILTER_ADAPTER"

}

fun getBottomSheetAdapterInstance(context: Context?): BottomSheetAdapter? {
    return BottomSheetAdapter(context)
}

}

在Java中

public interface BottomSheetJava {

default BottomSheetAdapter getBottomSheetAdapterInstance(Context context){
    return new BottomSheetAdapter(context);
}

}

在Gradle中

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
    jvmTarget = "1.8"
}
1个回答

3
我明白了,我们需要添加以下内容:
}

并将具体方法标记为

@JvmDefault


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接