【发布时间】:2022-10-21 04:03:06
【问题描述】:
希望我能在我正在努力解决的一个小问题上获得一些有价值的帮助。
我有一个 API 端点,它使用以下请求模式发送数据:
{
"type": String,
"coordinates": [
0.949492,
48.77163
]
}
可以看出;搜索中的坐标以两个 INT 值的形式提供,不带参数。
我正在尝试为此创建一个自动化测试,并将上述内容放在一个数据类中,以便可以根据需要在整个套件中使用它。
我的数据类目前看起来像下面的示例,但我不知道如何正确定义没有 val 或 var 参数的坐标列表。我现在将它定义为一个名为“list”的变量,这样它就不会抛出编译错误。我应该如何表示这个坐标列表?
data class SearchRequest(
val type: String,
val coordinates: List<Coordinates>
)
data class Coordinates(
var list: Int
)
【问题讨论】:
-
看起来它只是一个浮点数列表,因此您可以在第一堂课中定义
val coordinates: List<Float>而不需要第二堂课。 -
非常感谢您的反馈。另一个人也建议,所以绝对是要走的路!再次感谢。
-
你可能已经意识到了,但是数据类至少需要一个参数,并且全部它的构造函数参数需要是
val或var。这就是使它成为数据类的原因——它的所有数据是构造函数参数中的东西,这就是它生成的copy函数以及它的equals/hashCode/toString覆盖中使用的东西。所以如果你曾经做想要一个具有普通的、非val/var构造函数参数的类,你需要一个普通的类! (或者可能是一个构建器函数,它可以设置一个数据类在构建它之后,使用你额外的参数来戳它)
标签: json list kotlin json-deserialization data-class