Junior — Middle
Ako je mogoče realizirati ustvarjanje novega objekta, ki vsebuje tri polja iz izvirne data razreda in dodatno dve polji v obliki objektov?
sobes.tech AI
Odpoveď od AI
V Kotlinu za ustvarjanje novega objekta, ki vsebuje tri polja iz izvirnega data class-a in dodatno dve polji-objekta, lahko uporabite kopiranje s funkcijo copy() in razširitev razreda ali ustvarite nov razred z ustreznimi polji.
Primer:
data class Original(val a: Int, val b: String, val c: Double)
data class Additional(val x: String, val y: Int)
// Nov razred, ki združuje polja
class Extended(
val a: Int,
val b: String,
val c: Double,
val additional1: Additional,
val additional2: Additional
)
// Ustvarjanje iz izvirnega objekta
val original = Original(1, "besedilo", 2.0)
val add1 = Additional("obj1", 10)
val add2 = Additional("obj2", 20)
val extended = Extended(original.a, original.b, original.c, add1, add2)
Če potrebujete točno data class s kopiranjem, lahko to naredite tako:
data class Extended(
val a: Int,
val b: String,
val c: Double,
val additional1: Additional,
val additional2: Additional
)
val extended = Extended(original.a, original.b, original.c, add1, add2)
Tako združite polja iz izvirne razreda z novimi objekti.