kotlin提供了无符号整型的数据类型,如:UShort
、UByte
等。
如果使用无符号类整型的数组类型,如UByteArray
、UShortArray
时,会出现一个警告:
This declaration is experimental and its usage should be marked with '@kotlin.ExperimentalUnsignedTypes' or '@OptIn(kotlin.ExperimentalUnsignedTypes::class)'
这个警告无论是定义还是使用无符号类型数组时都会出现,比较讨厌。
当然可以在每个定义或调用无符号类型数组的函数或类都加上标注:@OptIn(ExperimentalUnsignedTypes::class)
更好的方法是在项目级的build.gradle中指定kotlin的编译选项:
allprojects {
gradle.projectsEvaluated {
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions.freeCompilerArgs += ["-opt-in=kotlin.ExperimentalUnsignedTypes"]
}
}
}
这会消除所有相关的警告,一劳永逸。
2024.1.30 补充一下kts中的写法
allprojects {
gradle.projectsEvaluated {
tasks.withType<KotlinCompile>().all{
kotlinOptions.freeCompilerArgs += "-opt-in=kotlin.ExperimentalUnsignedTypes"
}
}
}