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 |
Tags
- cd
- Kubernetes
- spring kafka
- mirror maker2
- Kotlin
- bean
- entity graph
- mysql
- JPA
- git
- Streams
- AWS
- kafka
- CodePipeline
- topic생성
- producer
- Entity
- CI
- QueryDSL
- offsetdatetime
- Spring JPA
- K8s
- transactionaleventlistener
- spring
- API
- ECS
- consumer
- centos7
- PAGING
- Spring Data JPA
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 |