kotlin - IntelliJ 编译器警告为可变参数传播空数组
问题描述
我有这个类,它在主构造函数中接受一个可变参数和一个键,以及一个只需要键的辅助构造函数,然后,在调用主构造函数时,我只传递一个空数组并传播它*emptyArray<String>
。
class AppendableParameter(val key: String, vararg parameters: String) {
constructor(key: String) : this(key, *emptyArray<String>())
}
代码工作正常,但 IntelliJ 给了我一个警告:
Remove redundant spread operator
如果我确实删除了它,它不会像预期的那样工作String
,并且 IntelliJ 的“建议修复”只是删除参数,使构造函数调用无效。
这可能是 IntelliJ 系统中的错误,还是我遗漏了一些微不足道的东西?
解决方案
我不能说 IntelliJ 发出的警告,但是您的辅助构造函数是不必要的。可以使用可变参数调用方法,而无需为所述可变参数传递任何参数,这与传递空数组相同。换句话说,拥有:
class Foo(val key: String, vararg params: String)
已经让我们像这样调用主构造函数:
val foo = Foo("key")
如果你想在没有给出参数时使用非空数组,那么你可以指定一个默认参数:
class Foo(
val key: String,
vararg params: String = arrayOf("default", "params")
)
推荐阅读
- c# - 从 C# Stream 读取而无需忙于等待
- ssl - 允许 kubernetes storageclass 使用自签名证书重新 URL HTTPS
- arrays - 如何创建一个 3 维数组,然后一次提取 1 个维度的信息?
- rest - 我无法在 SharePoint 图片库中按“名称”筛选
- mysql - 从多个表中获取计数
- javascript - 将 React 应用程序部署到 Github Pages 问题
- c++ - Qt SQLite 没有查询或参数计数不匹配
- python - 如何在python中使用比较符号和输入
- typescript - 打字稿 - 数组的键值
- powershell-5.0 - 有没有办法用打字机效果输出运行 powershell 脚本?