1

具有以下课程:

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
)
4

1 回答 1

2

将 AnnotationTarget.PROPERTY 更改为 AnnotationTarget.VALUE_PARAMETER

@Target(AnnotationTarget.FIELD, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.TYPE_PARAMETER)
@Retention(AnnotationRetention.RUNTIME)
annotation class Parse(
    val delimiter: String
)
于 2019-10-18T15:44:32.750 回答