すきま風

勉強したことのメモとか

data classのtoString()で特定のフィールドを隠蔽する

https://mustafaali.net/2018/01/14/Kotlin-data-classes-and-sensitive-information/
ラッパークラスにしてあげると良い。

class ProtectedProperty<T>(var value: T) {
    override fun toString() = "███████████"
}

data class Customer(
    val name: String,
    val password: ProtectedProperty<String>
)

val customer = Customer("user", ProtectedProperty("123"))

println(customer) // => Customer(name=user, password=███████████)

いつかどこかで使うケースが出てきそうなのでメモ