当前位置: 首页 > 知识库问答 >
问题:

在Kotlin中的数据类上使用apply

章高朗
2023-03-14

我知道如何在普通Kotlin类上使用apply函数,但无法将其用于数据类:

data class Person(name: String)

val person = Person().apply {
    name = "Tony Stark" 
}

我得到一个编译消息:

没有为参数“name”传递值

共有2个答案

秦俊
2023-03-14

应用函数的工作原理与任何类相似。但是您的代码片段中存在一些错误:

  1. Person构造函数中的参数未提到为varval,因此该类中没有字段name。最好使其var能够更改值
  2. 您使用1个参数创建了类的构造函数,但尝试使用空构造函数-这是错误的
贾俊喆
2023-03-14

问题是name只是一个构造函数参数,而不是属性,这对于数据类概念来说是无效的。像这样修复:

data class Person(val name: String)
 类似资料:
  • 问题内容: 我有这样的Java POJO类: 我有一个像这样的Kotlin数据类 如何在java变量中提供给诸如注解之类的任何变量? 问题答案: 资料类别: 到JSON: 从JSON:

  • 我正在尝试从相应的字符串值填充Kotlin数据类。我使用GSON查看了来自Json的:Kotlin数据类,但我试图做的并不是跟踪完全相同的: 调用此函数并尝试填充以下类: 但没有欢乐。stringValue是gson.toJson(value)生成的东西,其中value是一个JSONObject。 有人知道我的断线是什么吗?

  • 数据类似乎是Java中老式POJO的替代品。这些类将允许继承是可以预期的,但我看不到扩展数据类的方便方法。我需要的是这样的东西:

  • 我有Java POJO课是这样的: 我有一个像这样的Kotlin数据课 如何向的任何变量提供,如Java变量中的注释?

  • 问题内容: kotlin 1.2.10杰克逊模块kotlin:2.9.0 我在kotlin中有以下数据类: 当我尝试反序列化此数据类时,我得到以下信息: 如您所见,最后两个选项未正确反序列化。通过将注释直接添加到getter @get:JsonProperty,可以解决此问题。但是,根据杰克逊文档,@ JsonProperty应该分配给getters / setters / fields 因此,我

  • 试图调用返回简单json的restendpoint,但我总是失败。 结果是这样的: 我的代码是这样的: