Junior — Middle
Hogyan valósítható meg egy új objektum létrehozása, amely tartalmazza az eredeti data class három mezőjét, és további két mezőt objektumként?
sobes.tech MI
Válasz az MI-től
Kotlinban új objektum létrehozásához, amely három mezőt tartalmaz az eredeti data class-ból, és további két objektummezőt, használhatja a copy() függvényt és az osztály kiterjesztését, vagy létrehozhat egy új osztályt a szükséges mezőkkel.
Példa:
data class Original(val a: Int, val b: String, val c: Double)
data class Additional(val x: String, val y: Int)
// Új osztály, amely összeköti a mezőket
class Extended(
val a: Int,
val b: String,
val c: Double,
val additional1: Additional,
val additional2: Additional
)
// Létrehozás az eredeti objektumból
val original = Original(1, "szöveg", 2.0)
val add1 = Additional("obj1", 10)
val add2 = Additional("obj2", 20)
val extended = Extended(original.a, original.b, original.c, add1, add2)
Ha pontosan egy data class másolására van szükség, így teheti meg:
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)
Így kombinálja az eredeti osztály mezőit az új objektumokkal.