코틀린Kotlin에서 자바 인터페이스 getter 처리
문제의 getter를 포함한 UserDetails 인터페이스
interface UserDetails { fun getUsername(): String }
자바에서의 처리
public class User implements UserDetails { @Getter private String username; }
코틀린Kotlin에서의 처리
1.
class User : UserDetails { constructor(username:String){ this.username = username } override fun getUsername() = username val username: String = getUsername @JvmName(“getUsername_”) get() = username }
2.
class User : UserDetails {
constructor(username: String){
this.username = username
}
private val username: String
override fun getUsername() = username
}
3. 이게 제일 깔끔하고 알아보기 편하다.
class User(val username: String) : UserDetails { override fun getUsername() = username }
상황에 따라 1,2번을 써야하는 경우가 있기는 할까