kotlin - 如何在kotlin中的主要构造函数参数上添加注释
问题描述
具有以下课程:
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
)
推荐阅读
- python - 使用 %%timeit 会导致大型数据集的权限错误
- reactjs - 使用钩子通过 react-datepicker 存储状态
- google-cloud-platform - Bigquery - 安排存储过程不再工作
- javascript - 如何在 JavaScript 中用点减去数字?
- javascript - 获取另一个角色时如何删除角色(discord.js)
- python - Matlotlib:如何将 subplot-number 传递给 floating_axes.FloatingSubplot 方法?
- java - 更新 ArrayList 适配器
- azure - 如何在 azure 中从虚拟机 ping 负载均衡器 IP 地址
- python - 如何使用 python 库 pyjq 将字符串转换为 int?
- php - 避免专门针对特定产品的 WooCommerce 新订单通知