我想在不同的平台上应用不同的注释。所以在 CommonsMain 我有以下内容
@Target(AnnotationTarget.CLASS)
expect annotation class JsonIgnoreProperties(
vararg val value: String = arrayOf(),
val ignoreUnknown: Boolean,
val allowGetters: Boolean = true,
val allowSetters: Boolean = true
)
在 JvmMain 我想使用以下类型别名:
import com.fasterxml.jackson.annotation.JsonIgnoreProperties
actual typealias JsonIgnoreProperties = JsonIgnoreProperties
代码不会编译,因为 Jvm 注解值参数的类型是 Array<String>,而 Kotlin vararg 参数类型是 Array<out String>。我尝试将 vararg 参数更改为 Array<String> 类型的非 vararg 参数,但这也不起作用,因为参数的类型也与编译器不同。
有没有办法写出这样的别名?其实我根本不需要这个参数。有没有办法在commonMain中不提这个参数?