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