Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- CI
- QueryDSL
- PAGING
- CodePipeline
- entity graph
- Kotlin
- API
- K8s
- Spring Data JPA
- bean
- transactionaleventlistener
- consumer
- offsetdatetime
- ECS
- spring
- Entity
- kafka
- spring kafka
- Spring JPA
- cd
- Kubernetes
- centos7
- producer
- pgvector
- topic생성
- JPA
- mysql
- Streams
- AWS
- git
Archives
- Today
- Total
Yebali
Kotlin의 Data/Enum 클래스 본문
Data Class
데이터를 다루는데 최적화된 클래스로 아래 기능을 자동으로 생성해준다
- equals() : 내용의 동일성을 판단
- hashcode() : 객체 내용에서 고유한 코드를 생성하는 함수
- toString()
- copy()
- ComponentX() : 속성을 순서대로 반환하는 함수.
X에 번호를 넣으면 해당 번호에 해당하는 속성이 반환됨
class General(val name: String, val id: Int)
data class Data(val name: String, val id: Int)
fun main() {
val a = General("보잉", 747)
println(a == General("보잉", 747)) // 재대로 구현이 안됨
println(a.hashCode()) // 재대로 구현이 안됨
println(a) // 재대로 구현이 안됨
val b = Data("루디", 306)
println(b == Data("루디", 747))
println(b.hashCode())
println(b)
println(b.copy())
println(b.copy("아련"))
println(b.copy(id = 123))
}
componentX() 예시
class General(val name: String, val id: Int)
data class Data(val name: String, val id: Int)
fun main() {
val list = listOf(Data("보영",12),
Data("루디",34),
Data("아린",56))
// 내부적으로 component1(), component2()함수를 사용해서 불러오게 됨
for((a,b) in list) {
println("${a}, ${b}")
}
}
Enum Class
enum class State(val message: String) {
SING("노래를 부른다"),
EAT("밥을 먹다"),
SLEEP("잠을 잔다");
fun isSleeping() = this == State.SLEEP
}
fun main() {
var state = State.SING
println(state)
state = State.SLEEP
println(state.isSleeping())
}
'Kotlin' 카테고리의 다른 글
| Spring JPA Entity에 Data Class를 사용해도 될까? (0) | 2021.10.31 |
|---|---|
| Kotlin의 Collections (0) | 2021.10.31 |
| Kotlin의 nullable변수 처리 (0) | 2021.09.22 |
| Kotlin의 제너릭 (0) | 2021.09.22 |
| Kotlin의 Static Method와 Function (0) | 2021.09.22 |