Sobes.tech
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.