Scala 12.x和Java 11` String.lines`,如何在链式调用中强制隐式
发布时间:2020-12-16 09:59:01 所属栏目:安全 来源:网络整理
导读:问题描述 Scala StringOps提供了一个返回Iterator [String]的行方法. Java 11添加了带有返回类型java.Stream [String]的lines(). 在一个链式方法调用中 val text: Stringtext.lines.foldLeft("")(_ + _) 代码将不再编译并抛出一个不在java.Stream [String]上
问题描述
Scala StringOps提供了一个返回Iterator [String]的行方法. Java 11添加了带有返回类型java.Stream [String]的lines(). 在一个链式方法调用中 val text: String text.lines.foldLeft("")(_ + _) 代码将不再编译并抛出一个不在java.Stream [String]上定义foldLeft的exeption. 我如何表达我希望隐式被应用(没有parens的那个)而不是java.String.lines() 附加信息 >我找到了linesIterator但它已被弃用. 解决方法
StringOps#lines和jdk11 java.lang.String#lines之间的冲突是scala中的错误,请参阅问题
11125.
修复此错误的方法是取消弃用linesIterator,这是在2.12.7中完成的. Welcome to Scala 2.12.7 (OpenJDK 64-Bit Server VM,Java 11). scala> "a".lines res0: java.util.stream.Stream[String] = java.util.stream.ReferencePipeline$Head@2df259d0 scala> "a".linesIterator res1: Iterator[String] = <iterator> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |