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