使用傑克遜上課好像我需要執行不帶任何參數默認構造函數,也是我的其它構造把所有的默認值反序列化JSON屬性重載方法構造錯誤
class Application(artistViewUrl: String="",
trackViewUrl: String="",
price: String="",
artworkUrl100: String=""
) extends AppleBase {
def this() {
this("")
}
}
沒有默認值我有錯誤
Error:(14, 5) overloaded method constructor Application with alternatives:
()appleSearch.model.app.Application <and>
(artistViewUrl: String,trackViewUrl: String,price: String,artworkUrl100: String)appleSearch.model.app.Application
cannot be applied to (String)
this("")
如果我刪除非參數的構造函數,傑克遜拋出此異常
com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of politrons.apple.search.model.music.Album: no suitable constructor found, can not deserialize from Object value (missing default constructor or creator, or perhaps need to add/enable type information?)
at [Source: [email protected]; line: 1, column: 3] (through reference chain: java.util.ArrayList[0])
任何想法爲什麼?
我不確定我是否理解你的問題。你有兩個構造函數:0和4個參數(沒有默認值)。然後,您嘗試將其中的一個應用於空字符串。當然,他們不適合,因爲你沒有一個只需要一個字符串的構造函數。而在默認情況下,您只需調用4-args構造函數將第一個元素設置爲'「」'。 – laughedelic
如果刪除'def this()'構造函數,會發生什麼情況? – pedrofurla
@pedrofurla傑克遜拋出異常,檢查我的更新 – paul