всплыл на kaml.
@Serializable
class KfKeystore(val path: String, val passwd: String)
такой класс парсится если пришли два атрибута (path и passwd), всё работает.
Теперь хочу чтобы passwd на вход приходил как строка но хранился как CharArray для пущей безопасности, а path приходил как строка но хранился как Path.
@Serializable
class KfKeystore() {
constructor(path: String, passwd: String):this() {
println("$path $passwd")
}
}
так kaml ругается что Unknown property 'path'. Known properties are:
как можно принимать на вход одни параметры а хранить другие - свой сериализатор-модуль или иные варианты?
Сделайте поля приватными, а публичными вычислчемые свойства
хранить строковые пароли в целом небезопасно, вопрос был как принять строку но хранить её как CharArray. За совет спасибо конечно.
Еще действительно вариант написать кастомный сериализатор. Причем его можно легко совместить с суррогатом и получится совсем просто и удобно
то есть на сигнатуру конструктора сериализатор не смотрит? (который по @Serializable генерится)
https://github.com/Kotlin/kotlinx.serialization/blob/master/docs/serializers.md#composite-serializer-via-surrogate
Обсуждают сегодня