Is it possible to apply a single annotation to mul

2019-02-22 01:32发布

问题:

According to the documentation: https://kotlinlang.org/docs/reference/annotations.html

You can apply multiple annotations to a single site-use target, but is there a way to apply the same annotation to multiple site-use targets?

My use-case is decorating classes with annotations for SimpleXML. To use an immutable data class, you have to annotate both the field and the constructor parameter:

data class Data( @field:Element(name = "ID") @param:Element(name = "ID") val id: Int, @param:Element(name = "TEXT") @field:Element(name = "TEXT") val text: String)

For data classes with many fields, you can easily end up with 3x as many annotations as actual code, and it would be nice to eliminate the duplication. This is especially annoying when you have to use a complicated annotation like ElementUnion which can be multiple lines on its own.

回答1:

Unfortunately, as of Kotlin 1.3, there's no syntax for this use case