Kotlin: Interfaz con propiedad inmutable implementada por class con mutable

Tengo el siguiente código:

  • Funciona alnetworkingedor de una limitación en Spring donde las classs @ConfigurationProperties deben seguir la convención JavaBeans con properties mutables.

En lugar de inyectar el TokenConfigurationConfig mutable, inyectamos la interfaz.

public interface TokenAuthenticationConfig { public fun apiKey() : String } @Component @ConfigurationProperties(prefix = "service.api") public open class TokenAuthenticationConfigImpl : TokenAuthenticationConfig { public var apiKey : String constructor() { this.apiKey = "" } override fun apiKey(): String { return this.apiKey } } 

Funciona bien, pero solo me pregunto:

  • ¿Es posible en Kotlin definir una interfaz con una propiedad inmutable, que se implementa por class con una propiedad mutable?

Los usos de la interfaz verían la propiedad como inmutable, mientras que los usuarios de la class la verían como mutable.