android - 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
解决方案
readLines
在这个版本的FileUtils
返回List
中,但 Kotlin 期望List<String>
在ArrayList<String>
构造函数中。您可以将结果转换为:
items = ArrayList<String>(FileUtils.readLines(todoFile) as List<String>)
(但您会在此处收到未检查强制转换的警告),或者您可以使用较新的库版本,其中函数定义为 return List<String>
。
推荐阅读
- javascript - 更新 d3 数据反应钩子
- api - 来自 API 的 Flutter ListView 数据未显示在我的网络应用程序上
- c - ymm0 寄存器(不是内存)中单个浮点数的位表示是什么?
- mysql - 如何处理在mysql中返回多于1行的子查询
- android - 如何避免在 BindingAdapter 中显式调用 findDrawableByLayerId 和 getDrawable
- excel - 将 2000 多行数据从数据网格视图导出到 vb.net 中的 excel 文件
- java - 如何为每个用户创建一个 ThreadPoolExecutor?
- python - 您可以使用 tkinter 画布制作按钮吗?
- c# - 谁能告诉我为什么它不能在我的 EditRole 方法中识别 role.Name ?
- react-native - react native expo QRcode GENERATOR