Effective Kotlin - Data Modifer

2021. 9. 30. 11:01Computer

Data Modifier (데이터 수정자)

Destructuring Declarations 개념으로 구현이 되어 있다.

data class Player {
    val name: String,
    val age: Int,
}

사용하는 이유

아래의 기능들을 제공한다.

toString

@NotNull
public String toString() {
   return "Player(name=" + this.name + ", age=" + this.age + ")";
}

componentN ( 사용시 주의할 점, 중간에 Player 클래스에 새로운 속성을 부여할 떄, 맨뒤에서부터 하나씩 붙여나가자, 안그러면 N 의 순서가 바뀌므로 문제가 생길 수 있다. )

val (name, age) = Player("홍길동", 20)
copyPlayer.text = name
copyPlayer.text = age.toString()

equals and hashCode

모든 기본 생성자의 속성이 동일한지 확인 (값이 같은지 확인) 하고 일관된 해시값을 같는지 확인.
단, === 비교시에는 메모리 주소가 같은지 확인한다.
재정의가 가능하지만, 이 부분은 주의해서 사용해야한다.

copy

동명이인의 플레이어 생성시 코드의 양을 줄일 수 있다.

val playerA = Player("홍길동", 20)
val playerB = Player(userInfo.name, 13)

요약

  • Data Modifier 는 여러 유용한 기능을 제공합니다. ( toString, componentN, equals, hashCode , copy )
  • Data class 구조화할 경우 변수 이름을 매개변수와 일치시켜서 사용하세요.
반응형