私は最近、コットリンで期限切れになり、Kotlinを使ってSpring Bootペットプロジェクトを開始しました。コトリンでの偶発的なオーバーライドエラーの解決
私はカスタムのユーザードメインオブジェクトをSpring Securityに統合しようとしているため、UserDetailsインターフェースを実装したいと考えています。
以下の私のドメイン・ユーザー・オブジェクトを考える:
偶然のオーバーライド:次の宣言が同じJVM 署名(getUsername()Ljava/langの持つ
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 }
は、私は次のエラーを取得します/ String;):public final fun < get-username>():Kotlin.String、public abstract fun getUsername():Kotlin.String!
偶然のオーバーライド:次の宣言は、同じJVM 署名(getPasswordに()Ljava/LANG /文字列;)持っている:公共の最終楽しい<取得-パスワード>():Kotlin.String、パブリック抽象楽しいgetPasswordに() :Kotlin.String!
私のUserクラスはすでにメソッドgetUsernameを(持っているので):Kotlin.String:Kotlin.StringもメソッドgetUsername()を実装! ?
プロパティのgetterとsetterで@JvmNameを使用する以外に、このようなエラーをどのように解決する必要がありますか?
を私はhttps://stackoverflow.com/questions/45901531、同様の問題に遭遇しました/ how-to-create-a-data-class-implements-spring-secuirty-specific-userdetailsを追加しましたが、 'private'を追加すると、破壊操作が破棄されました。 – Hantsy