0Day Forums
Is it possible to apply a single annotation to multiple use-site targets in Kotlin? - Printable Version

+- 0Day Forums (https://0day.red)
+-- Forum: Coding (https://0day.red/Forum-Coding)
+--- Forum: Kotlin (https://0day.red/Forum-Kotlin)
+--- Thread: Is it possible to apply a single annotation to multiple use-site targets in Kotlin? (/Thread-Is-it-possible-to-apply-a-single-annotation-to-multiple-use-site-targets-in-Kotlin)



Is it possible to apply a single annotation to multiple use-site targets in Kotlin? - hispanist606203 - 07-20-2023

According to the documentation:

[To see links please register here]


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.


RE: Is it possible to apply a single annotation to multiple use-site targets in Kotlin? - nod756 - 07-20-2023

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