基本上我希望使用scala模块将null数组反序列化为空集合。据我所知,目前尚未实施,因此我正在寻找解决方法。我认为如果我有一个带有Option [Seq [Any]]参数的辅助构造函数,它可以工作。像这样:
case class Test (id: Int, seq: Seq[Any]){
@JsonCreator
def this(id: Int, seq: Option[Seq[Any]]) = this(id, seq.getOrElse(Seq()))
}
但是,由于杰克逊给了我这个例外,它不起作用:
引起:java.lang.IllegalArgumentException:冲突 基于属性的创建者:已经明确标记了[构造函数 for com.test.Main $ Test,annotations:[null]],遇到[构造函数 for com.test.Main $ Test,annotations:{interface com.fasterxml.jackson.annotation.JsonCreator=@com.fasterxml.jackson.annotation.JsonCreator(模式= DEFAULT)}]
有趣的是,如果我删除了id字段,它就会开始工作:
case class Test (seq: Seq[Any]){
@JsonCreator
def this(seq: Option[Seq[Any]]) = this(seq.getOrElse(Seq()))
}
P.S。关于我最初的问题。我不想要选择[Seq [Any]]并且我不想拥有getter,因为我的构造函数param将具有像_seq这样丑陋的名称,而在scala参数名称中也是一个公共API。