Я использую Jackson-Kotlin для сериализации и десериализации объектов JSON в моем проекте kotlin. Проблема в том, что мне нужно определить один и тот же метод в каждом классе, изменив только одно typeValue. Это кажется очень плохой практикой, поэтому я прихожу к сообществу, чтобы узнать, как лучше всего справиться с этим сценарием.
Пример:
class User: Model() {
//...
companion object {
fun fromJson(json: String): User {
return ObjectMapper().registerKotlinModule().readValue<User>(json)
}
fun toJson(user: User): String {
return ObjectMapper().registerKotlinModule().writeValueAsString(user)
}
}
}
class Friend: Model() {
//...
companion object {
fun fromJson(json: String): User {
return ObjectMapper().registerKotlinModule().readValue<Friend>(json)
}
fun toJson(friend: Friend): String {
return ObjectMapper().registerKotlinModule().writeValueAsString(user)
}
}
}
Как видите, код очень похож, кроме параметра типа в методе readValue<>()
. Есть ли способ, которым я могу просто определить один метод в классе Model () вместо каждого класса, который наследуется от Model?