0

我想在不同的平台上应用不同的注释。所以在 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中不提这个参数?

4

0 回答 0