07-20-2023, 01:38 PM
According to the documentation:
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.
[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.