Написал код, но он выдаёт ошибку Exception in thread "main" java.lang.StackOverflowError

Ошибка:

Exception in thread "main" java.lang.StackOverflowError
 at myClass.getIntArray (File.kt:4) 
 at myClass.getIntArray (File.kt:4) 
 at myClass.getIntArray (File.kt:4) 

Код:

class myClass {
    var intArray = arrayListOf(1, 2, 3, 4, 5, 6)
        get() {
            var Size = intArray.size
            var Summ = 0
            for(a in 0..Size) {
                intArray.removeAt(a)
                Summ += intArray[a]
            }
            intArray.add(Summ)
            return intArray
        }
}

fun main() {
   var Array = myClass()
   for(a in Array.intArray) {
       println(a)
   }
}

Ответы (1 шт):

Автор решения: Alex_Skvortsov

Вы возвращаете из геттера return intArray, что есть вызов геттера. То есть геттер бесконечно вызывает сам себя

Думаю, ожидалось от Вас нечто такое:

class myClass {
    var intArray: List<Int> = arrayListOf(1, 2, 3, 4, 5, 6)

    val arraySum: Int
        get() = intArray.sum()
}
→ Ссылка