如何在kotlin中的主要构造函数参数上添加注释
How to add annotation on main constructor parameters in kotlin
具有以下class:
data class TestMsg(
@Parse(";")
val someArray: Array<String>
)
并尝试使用
获取注释
TestMsg::class.primaryConstructor!!.parameters.forEach{
println(it.findAnnotation<Parse>())
}
没有找到注释。我必须移动参数前面的注释才能使其正常工作
data class TestMsg(
@Parse(";") val someArray: Array<String>
)
是jetbrains解析错误还是正常现象?
编辑
您可以在此处找到注释:
@Target(AnnotationTarget.FIELD, AnnotationTarget.PROPERTY, AnnotationTarget.TYPE_PARAMETER)
@Retention(AnnotationRetention.RUNTIME)
annotation class Parse(
val delimiter: String
)
将AnnotationTarget.PROPERTY更改为AnnotationTarget.VALUE_PARAMETER
@Target(AnnotationTarget.FIELD, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.TYPE_PARAMETER)
@Retention(AnnotationRetention.RUNTIME)
annotation class Parse(
val delimiter: String
)
具有以下class:
data class TestMsg(
@Parse(";")
val someArray: Array<String>
)
并尝试使用
获取注释TestMsg::class.primaryConstructor!!.parameters.forEach{
println(it.findAnnotation<Parse>())
}
没有找到注释。我必须移动参数前面的注释才能使其正常工作
data class TestMsg(
@Parse(";") val someArray: Array<String>
)
是jetbrains解析错误还是正常现象?
编辑
您可以在此处找到注释:
@Target(AnnotationTarget.FIELD, AnnotationTarget.PROPERTY, AnnotationTarget.TYPE_PARAMETER)
@Retention(AnnotationRetention.RUNTIME)
annotation class Parse(
val delimiter: String
)
将AnnotationTarget.PROPERTY更改为AnnotationTarget.VALUE_PARAMETER
@Target(AnnotationTarget.FIELD, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.TYPE_PARAMETER)
@Retention(AnnotationRetention.RUNTIME)
annotation class Parse(
val delimiter: String
)