【问题标题】:Kotlins extension method Stream.toList() is missing缺少 Kotlins 扩展方法 Stream.toList()
【发布时间】:2018-01-25 16:45:34
【问题描述】:

我正在尝试将流转换为 kotlin 中正确键入的列表。对于这种情况,kotlin 提供了扩展方法Stream.toList()。此方法位于 kotlin.streams 中。 IDE (IntelliJ) 不允许在流上调用此方法。我必须添加一个特殊的依赖项还是应该是标准库的一部分?我正在使用 maven,并且依赖于 kotlin-stdlib-jdk8 1.2.10。

注意:流是从库函数返回的,所以我必须使用它。请不要回答“在 kotlin 中你不使用流......”这样的答案。

【问题讨论】:

  • 你需要在 build.gradle 中添加kotlin-stdlib-jdk8 & set jvmTarget=1.8
  • 它是行家。 kotlin.compiler.jvmTarget 属性设置为“1.8”。觉得这样就够了吗?
  • 你刷新maven项目了吗?如果您不知道该怎么做,只需手动编写代码并将光标移动到错误代码按ALT+ENTER尝试修复它。您还需要将maven-compiler-plugin 更新为<source>1.8</source>
  • 在 Idea 2018.1 和 Kotlin 插件 1.2.30 或 31 中,此错误似乎已修复。我无法再重现该问题...

标签: collections kotlin kotlin-extension


【解决方案1】:

如果我使用 kotlin-stdlib-jdk8 依赖项而不是 kotlin-stdlib-jre8(我们是 not supposed to be using 从 1.2 及更高版本),我可以重现您的问题。

但是,如果我手动添加导入,它确实可以工作:

import kotlin.streams.toList

还要确保您已将 Kotlin 插件更新到最新版本,这也可能会有所帮助。但是没有自动找到导入肯定有问题。

【讨论】:

  • 你明白了!谢谢!它适用于导入。插件版本和想法是最新的(1.2.20 和 2017.3.2)。我应该为想法打开错误报告吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-24
  • 1970-01-01
  • 2011-10-07
  • 2017-01-05
  • 2010-11-13
相关资源
最近更新 更多