【发布时间】:2018-08-12 04:53:21
【问题描述】:
假设我有多个 DTO,例如:
data class ActionDetailDTO(
@JsonProperty("priority")
val priority: String,
@JsonProperty("reason")
val reason: String
)
data class IntroDTO(
@JsonProperty("name")
val name: String,
@JsonProperty("number")
val number: String
)
我将这些 dto 的 json 存储为字符串, 当我解析他们做这样的事情时:
fun parseStringBasedOnType(action: SomeDTOType) :Any{
val obj = when (action.actionType){
"CREATED" -> objectMapper.readValue(action.actionDetails, ActionDetailDTO::class.java)
"INTRO" -> objectMapper.readValue(action.actionDetails, IntroDTO::class.java)
else -> "hh"
}
return obj
}
所以:
val nn = parseStringBasedOnType(SomeActionObject) //type: CREATED
if(nn.actionType == "CREATED"){
println(nn.reason)
}
这明明不行,怎么处理?
【问题讨论】: