Is there a way to use the default value on a non-optional parameter when null is passed?
You can define a companion object for your data class and overload its invoke operator to use default values when null is passed: data class Data private constructor( val name: String, val number: Long ) { companion object { operator fun invoke( name: String? = null, number: Long? = null ) = Data( name ?: … Read more