Sobes.tech
Junior — Middle

Jak można zrealizować tworzenie nowego obiektu, który zawiera trzy pola oryginalnej klasy danych oraz dodatkowo dwa pola w formie obiektów?

sobes.tech AI

Odpowiedź od AI

W Kotlinie, aby utworzyć nowy obiekt zawierający trzy pola z oryginalnej klasy danych i dodatkowo dwa pola-obiekty, można użyć kopiowania za pomocą funkcji copy() i rozszerzenia klasy lub utworzyć nową klasę z potrzebnymi polami.

Przykład:

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

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

// Nowa klasa łącząca pola
class Extended(
    val a: Int,
    val b: String,
    val c: Double,
    val additional1: Additional,
    val additional2: Additional
)

// Tworzenie z oryginalnego obiektu
val original = Original(1, "tekst", 2.0)
val add1 = Additional("obj1", 10)
val add2 = Additional("obj2", 20)

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

Jeśli potrzebujesz dokładnie data class z kopiowaniem, można to zrobić tak:

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)

W ten sposób łączysz pola oryginalnej klasy z nowymi obiektami.