kotlin - 对以下行感到困惑 @field:[Expose SerializedName("id")]
问题描述
我有以下数据类将从 API 检索数据:
data class Users(
@field:[Expose SerializedName("id")]
val id: Int)
我只是想知道是什么@field:
意思。
通常,我总是这样做:
data class Users(
@Expose
@SerializedName("id")
val id: Int)
我理解expose和serializedName的含义。
只是几个问题:
我最好的猜测是
@field:[]
采用一组注释,而不是像第二个示例那样将它们放在每一行上?但是该字段是 Kotlin 关键字还是注释,因为它前面有
@
?你还能在哪里使用@field?
解决方案
在val id
您的示例中,一次性声明了几件不同的事情:
构造函数参数。
类的属性,实现为 getter 方法。
属性的支持字段。
那么注释适用于哪些?它默认为参数,这就是您的第二个示例所做的。
如果您希望它改为应用于该字段,就像在您的第一个示例中一样,您可以使用field:
目标。
(它通常适用于单个注释,但也可以应用于它们的数组,如本例所示。)
有关更多详细信息,请参阅 jonrsharpe 提供的链接:https ://kotlinlang.org/docs/reference/annotations.html#annotation-use-site-targets
, field:
, property:
, file:
&c 目标仅用于注释。(field
也是 getter/setter 定义中的关键字。)
推荐阅读
- python - 表单不会验证,说所有字段都是空的 Django
- python - Python OpenCV - 图像四肢计算
- python - python中指数投资组合的跨度
- python - 有什么方法可以在 Python tkinter gui 中按比例放大点(x,y)?
- c# - C# 求函数的逆
- rescript - 使用 CLI 编译 Rescript -- 没有 bsconfig.json
- awk - Replace each nth occurrence of 'foo' and 'bar' by numerically respective nth line of a supplied file once time
- vba - VBA宏控制Word中的光标
- java - 当提交的表单具有属性 enctype="multipart/form-data" 时,如何在控制器中获取表单数据?
- java - 有人可以帮助我如何使另一个框架中的按钮工作吗?