在Scala case类中,我有一个布尔函数定义,其名称以" is“开头-函数名为"isCreated”。我意识到,一旦我使用fasterxml/Jackson将这个类的对象实例序列化为Json,就会在表示中添加一个名为“created”的冗余字段。但是,如果我将函数名更改为不以"is“开头的其他名称(s.a.简单地“创建”),对象实例创建得很好,没有多余的字段。在Scala中,是否存在与名称以" Is“开头的函数定义相关的特殊含义,从而触发code-gen向该类型的对象添加字段?
case class Account(
name: String,
balance: Double,
status: AccStatus) {
// [.. some code ..]
def isCreated: Boolean = (status.tag == true)
}发布于 2019-08-31 01:48:00
我工作的公司在我们切换到Circe之前使用Jackson,我已经看到了你所描述的功能。我相信这是因为Jackson假设"isCreated“是”创建的“Boolean类型的私有变量的getter,并在JSON中为它创建了一个字段。回想一下,Jackson最初是为Java编写的。在Scala中,我们没有getter和setter,所以这个特性对我们没有帮助。
https://stackoverflow.com/questions/57730980
复制相似问题