При Kotlin область видимости на верхнем уровне (т. Е. Вне класса) публикуется c и stati c, верно?
Мне нужны файлы, где у одного есть класс данных, а у другого - пытается получить к нему доступ.
Файл1:
package com.test
data class Xyz (val s1:String, val s2:String)
Файл2:
package com.test
val myList : List<Xyz> = File1.theList
Моя ошибка:
/home/sjs/Test/src/com/test/File2.kt
Error:(3, 26) Kotlin: Unresolved reference: File1
Файлы находятся в тот же каталог и тот же пакет, поэтому мне не нужно ничего импортировать, верно? Кроме того, я попытался импортировать «import File1. », а также «import com.test.File1. », но ничего не получается.
Я перепробовал все, что мог придумать, но первый файл не может видеть второй. Я в полном замешательстве.
Я использую IDE Intellij. ПРИМЕЧАНИЕ. Обновил код, как указано ниже, и компилятор пожаловался на необходимость использования метода получения / установки, который теперь имеется в коде:
File1:
package com.test
data class Xyz (val s1:String, val s2:String)
val theList : List<Xyz>
get() = buildList()
fun buildList() : List<Xyz> {
var myList = mutableListOf<Xyz>()
if (theList.size > 0) return theList;
val l1 = arrayListOf<String>("1", "2", "3")
val l2 = arrayListOf<String>("a", "b", "c")
for (i in 0..l1.lastIndex)
myList.add(Xyz(l1[i], l2[i]))
return myList;
}
File2:
package com.test
val myList : List<Xyz> theList
Ошибка:
/home/sjs/Test/src/com/test/File2.kt
Error:(3, 24) Kotlin: Property getter or setter expected
Итак - теперь он не видит геттер () ??