Junior
Kā darbojas datu klases Kotlin?
sobes.tech AI
Atbilde no AI
Kotlin datu klases tiek izmantotas datu glabāšanai. Kompilators automātiski ģenerē standarta metodes:
equals(): Salīdzina instances pēc to īpašību vērtībām.hashCode(): Ģenerē hash kodu, balstoties uz īpašību vērtībām.toString(): Atgriež virknes attēlojumu, kas ietver visu īpašību nosaukumus un vērtības.copy(): Izveido objekta kopiju, ja nepieciešams, mainot norādīto īpašību vērtības.componentN(): Metodes objekta destrukturizācijai (objekta sadalīšanai atsevišķās īpašībās).
// Datu klases piemērs
data class User(val name: String, val age: Int)
fun main() {
val user1 = User("Alice", 30)
val user2 = User("Alice", 30)
val user3 = User("Bob", 25)
// equals()
println(user1 == user2) // patiesība
println(user1 == user3) // nepatiesība
// toString()
println(user1.toString()) // User(name=Alice, age=30)
// copy()
val user4 = user1.copy(age = 31)
println(user4) // User(name=Alice, age=31)
// componentN() un destrukturizācija
val (name, age) = user1
println("Name: $name, Age: $age") // Name: Alice, Age: 30
}
Galvenie punkti:
- Visas īpašības, kas definētas galvenajā konstruktorā, ir jābūt
valvaivar. - Datu klase nevar būt
abstract,open,sealedvaiinner. - Datu klases var manto citus klases vai realizēt interfeisus.
- Īpašības, deklarētas ārpus galvenā konstruktora, neiesaistās standarta metožu ģenerēšanā.
| Metode | Apraksts |
|---|---|
equals() |
Salīdzina īpašības no galvenā konstruktora. |
hashCode() |
Ģenerē hash, balstoties uz galvenā konstruktora īpašībām. |
toString() |
Izvada īpašību tekstuālo attēlojumu. |
copy() |
Izveido virspusēju kopiju ar iespēju mainīt īpašības. |
componentN() |
Pieejas īpašībām pēc to secības konstruktorā. |
Datu klases ievērojami vienkāršo darbu ar POJO (Plain Old Java Object) vai DTO (Data Transfer Object), samazinot boilerplate kodu.