我上过课:
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)
但是,当我尝试通过itemA元素从array2打印元素时,出现错误Unresolved Reference,好像我无法获取array2。但是将元素添加到array2效果很好。有可能这样做吗?或者做这种事情的最佳方法是什么?
答案 0 :(得分:0)
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
。