4
我的初始化塊是工作完全正常,當我創建我的對象GSON反序列化與科特林,初始化塊不叫
class ObjectToDeserialize(var someString: String = "") : Serializable {
init{
someString += " initialized"
}
}
這樣:
@Test
fun createObject_checkIfInitialized() {
assertEquals("someString initialized",ObjectToDeserialize("someString").someString)
}
但是當我反序列化對象與GSON,初始化塊沒有得到執行:
@Test
fun deserializeObject_checkIfInitialized(){
val someJson: String = "{\"someString\":\"someString\" }"
val jsonObject = Gson().fromJson(someJson, ObjectToDeserialize::class.java)
assertEquals("someString initialized",jsonObject.someString)
// Expected :someString initialized
// Actual :someString
}
我認爲gson正在創建對象與通過執行主構造函數不同的方式。儘管如此,可能有類似初始化塊的東西嗎?