kotolinとは 人気・最新記事を集めました - はてな (original) (raw)

kotlinでシリアライズするクラスにはデフォルト値を指定してはならぬ

kotlinでシリアライズするクラスにデフォルト値をつけると、頭のいいコンパイラが余計なことをして設定値を書き出さないことがある。次のコードを実行すると、a,bは意図したとおりになるが、それ以降は値が書き出されない。 @Serializable data class HasDefault( @SerialName("points") val points:Int=10, @SerialName("cycle") val cycle:Int=10 ) @Serializable data class Normal( @SerialName("points") val points:Int, @S…