我正在尝试使用scala代码中的Java 8 Stream,如下所示,并且遇到编译错误.
任何帮助赞赏!!
def sendRecord(record: String): Unit throws Exception
bufferedReader.lines().forEach(s => sendRecord(s))
Cannot resolve forEach with such signature, expect: Consumer[_ >: String], actual: (nothing)
PS:尽管有一些迹象表明它几乎像https://gist.github.com/adriaanm/892d6063dd485d7dd221一样直接但它似乎不起作用.我正在运行Scala 2.11.8
解决方法:
查看您在问题中链接的文件的顶部.它提到了-Xexperimental flag.如果运行scala编译器或带有此标志的repl,则scala函数将被转换为java等效项.另一个选择是手动传入java函数.
scala> java.util.stream.Stream.of("asd", "dsa").map(new java.util.function.Function[String, String] { def apply(s: String) = s + "x" }).toArray
res0: Array[Object] = Array(asdx, dsax)
您还可以创建(隐式)转换来为您包装scala函数.
您还可以等待scala 2.12,使用此版本,您将不再需要该标志.
更新
当scala 2.12出来时,有问题的代码将正常编译.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。