Sobes.tech
Junior — Middle

Jak lze realizovat vytvoření nového objektu, který obsahuje tři pole původní třídy dat a navíc dvě pole ve formě objektů?

sobes.tech AI

Odpověď od AI

V Kotlinu lze pro vytvoření nového objektu, který obsahuje tři pole z původní třídy data a navíc dvě pole-objekty, použít kopírování pomocí funkce copy() a rozšíření třídy nebo vytvořit novou třídu s potřebnými poli.

Příklad:

data class Original(val a: Int, val b: String, val c: Double)

data class Additional(val x: String, val y: Int)

// Nová třída spojující pole
class Extended(
    val a: Int,
    val b: String,
    val c: Double,
    val additional1: Additional,
    val additional2: Additional
)

// Vytvoření z původního objektu
val original = Original(1, "text", 2.0)
val add1 = Additional("obj1", 10)
val add2 = Additional("obj2", 20)

val extended = Extended(original.a, original.b, original.c, add1, add2)

Pokud potřebujete přesně data class s kopírováním, můžete to udělat takto:

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)

Tímto způsobem kombinujete pole původní třídy s novými objekty.