来自scala代码的Java 8 Stream
发布时间:2020-12-16 10:07:04 所属栏目:安全 来源:网络整理
导读:我正在尝试使用 scala代码中的 Java 8 Stream,如下所示,并且遇到编译错误. 任何帮助赞赏!! def sendRecord(record: String): Unit throws ExceptionbufferedReader.lines().forEach(s = sendRecord(s))Cannot resolve forEach with such signature,expect: C
我正在尝试使用
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出来时,有问题的代码将正常编译. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |