Ho recentemente iniziato a lavorare in sinergia con Kotlin e ho avviato un progetto per animali da compagnia Spring Boot utilizzando Kotlin.Risoluzione degli errori di override accidentale in Kotlin
Sto cercando di integrare un oggetto dominio utente personalizzato su Spring Security e quindi di implementare l'intefaccia UserDetails.
Dato il mio oggetto di dominio Utente qui sotto:
import org.springframework.data.annotation.Id as DocumentId
import org.springframework.data.mongodb.core.mapping.Document
import org.springframework.security.core.GrantedAuthority
import org.springframework.security.core.authority.AuthorityUtils
import org.springframework.security.core.userdetails.UserDetails
@Document
data class User(@DocumentId val id: String? = null,
val username: String = "",
val password: String = "",
val email: String = "",
val name: String? = null,
val surname: String? = null) : UserDetails {
override fun isCredentialsNonExpired(): Boolean = true
override fun isAccountNonExpired(): Boolean = true
override fun isAccountNonLocked(): Boolean = true
override fun getAuthorities(): MutableCollection<out GrantedAuthority> = AuthorityUtils.createAuthorityList("USER")
override fun isEnabled(): Boolean = true
}
ottengo i seguenti errori:
esclusione accidentale: Le seguenti dichiarazioni hanno la stessa JVM firma (getUsername() Ljava/lang/String;): public final fun < get-username>(): Kotlin.String, public abstract fun getUsername(): Kotlin.String!
esclusione accidentale: Le seguenti dichiarazioni hanno la stessa JVM firma (getPassword() Ljava/lang/String;): divertimento pubblico finale < get-password>(): Kotlin.String, pubblico divertimento astratta getPassword() : Kotlin.String!
Dal momento che la mia classe utente ha già un metodo getUsername(): Kotlin.String anche implementare il metodo getUsername(): Kotlin.String! ?
Come posso risolvere un simile errore, oltre all'utilizzo dello @JvmName sul getter e setter della proprietà?
ho incontrato problemi simili, https://stackoverflow.com/questions/45901531/how-to-create-a-data-class-implements-spring-secuirty-specific-userdetails, ma se ho aggiunto 'private', ho trovato l'operazione di distruzione distrutta. – Hantsy