首页 > 解决方案 > ArrayList readLines

问题描述

这段代码有什么问题?请帮忙

 val filesDir = filesDir
 val todoFile = File(filesDir, "todo.txt")
 items = ArrayList<String>(FileUtils.readLines(todoFile))

//PS: FileUtils 来自 (implementation 'org.apache.commons:commons-io:1.3.2')

这是错误:

(40, 21): None of the following functions can be called with the arguments 
supplied:
public final fun <E> <init>(p0: (MutableCollection<out 
String!>..Collection<String!>?)): kotlin.collections.ArrayList<String> /* = 
java.util.ArrayList<String> */ defined in kotlin.collections.ArrayList
public final fun <E> <init>(p0: Int): kotlin.collections.ArrayList<String> /* 
= java.util.ArrayList<String> */ defined in kotlin.collections.ArrayList

标签: androidandroid-studiokotlin

解决方案


readLines在这个版本的FileUtils返回List中,但 Kotlin 期望List<String>ArrayList<String>构造函数中。您可以将结果转换为:

items = ArrayList<String>(FileUtils.readLines(todoFile) as List<String>)

(但您会在此处收到未检查强制转换的警告),或者您可以使用较新的库版本,其中函数定义为 return List<String>


推荐阅读