Как получить доступ к элементам массива из класса Derrived - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть классы:

class A { MutableList<B> array1 = mutableListOf() }

class B { }

class Ba : B { MutableList<C> array2 = mutableListOf() }

class C { var name: String }

В моей основной функции я сделал:

val itemA = A()
val itemBa = Ba()
itemBa.array2.add(C("name"))
itemA.array1.add(ItemBa)

for(arr1 in itemA.array1)
   for(arr2el in arr1.array2)
      print(arr2el.name)

Но когда я пытаюсь распечатать элементы из массива 2 через элемент itemA, я получаю ошибку Unresolved Reference,как будто я не могу получить массив2.Но добавление элемента в массив2 работало нормально.Можно ли сделать это таким образом или как лучше всего сделать что-то подобное?

1 Ответ

0 голосов
/ 26 февраля 2019
MutableList<B> array1 = mutableListOf()

содержит B элементов.

class Ba : B { MutableList<C> array2 = mutableListOf() }

Список array2 определен для Ba.
Подпись B не раскрывает членовили методы , поэтому вы не можете ожидать, что это сработает.

val itemBa = Ba()
itemBa.array2.add(C("name"))

Здесь вставка работает нормально, потому что вы работаете с Ba подписью, которая выставляет ее член array2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...