Вернуть массив ? в Kotlin - PullRequest
1 голос
/ 03 мая 2020

Я пытаюсь прочитать список строк из файла, который структурирован как список:

ElemA
ElemB
ElemC

Мне нужно сохранить в эту переменную, которая определяется как:

private var history: Array<out String>?

Я сделал этот метод, но он не работает, потому что он требует Array? в качестве вывода, но он создает Array <(out) Any!>!

private fun loadHistory(): Array<out String>? {
    val list = ArrayList<String>()
    File("history").forEachLine { list.add(it) }
    return list.toArray()
}

Как я могу решить?

1 Ответ

1 голос
/ 03 мая 2020

Как подсказывает @jsamol в комментариях.

Вы должны использовать toTypedArray() вместо toArray(), чтобы получить массив указанного типа c. ( ref )

toArray() возвращает новый массив типа Array<Any?>. ( ref )

private fun loadHistory(): Array<out String>? {
    val list = ArrayList<String>()
    File("history").forEachLine { list.add(it) }
    return list.toTypedArray()
}

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