我想在我的Kotlin界面中为方法提供默认实现:
interface INavItem : Comparable<INavItem> {
val order: Int
@JvmDefault
override fun compareTo(other: INavItem): Int = order.compareTo(other.order)
}
但@JvmDefault
突出显示并显示错误:
仅从JVM目标1.8开始才支持'@ JvmDefault'。重新编译为-jvm-target 1.8
root目标构建文件中存在
JVM target 1.8设置:
project.ext {
javaVersion = JavaVersion.VERSION_1_8
// other properties
}
并且我在 module 构建文件中使用它:
android {
compileOptions {
sourceCompatibility rootProject.ext.javaVersion
targetCompatibility rootProject.ext.javaVersion
}
// ...
}
注意:Java源代码中提供了Java 8功能(lambda等)。
是否存在通过Kotlin皮棉可见的变量分配source/targetCompatibility
的任何方式?