这个scala错误对类型不匹配意味着什么


type mismatch;
found   : String => Int
required: java.util.function.ToIntFunction[_ >: String]

我真的希望在人们写下";下一件大事&;他们船上有一些语言专家,他们可以向他们解释错误信息可能是的两件事之一

  1. 一个无意义的代码
  2. 向不懂语言的人解释问题的完整句子

理性存在,如果你理解语言(例如阅读手册(,那么你只需要一个错误代码。但是,如果你不懂语言(即最初会收到错误信息的人(,那么你需要一个完整的句子,包括解释、问题示例和解决方案。

想想节省的时间——所有可能犯错误的开发人员的总时间——与时间成本(开发人员+语言专家写一个带示例的解释性句子(。

String => Intscala.Function1[String, Int],即Scala函数类型。

java.util.function.ToIntFunction[String]是一种Java函数类型。

在Scala2.12+中,它们应该是可互换的,在Scala的早期版本中,你应该将一个转换为另一个。

如何在Scala中使用Java lambdas(答案#2(

ToIntFunction[_ >: String]意味着情况可能会稍微复杂一点,因为它涉及存在类型,但如果没有可复制的代码样本,很难说会更好。


尝试

//libraryDependencies += "org.scala-lang.modules" %% "scala-java8-compat" % "0.9.1"
import scala.compat.java8.FunctionConverters._
x.get("answers").findValuesAsText("id").stream().mapToInt(((valx:String) => Integer.parseInt(valx)).asJava).max().getAsInt

它有效吗?或者错误信息会改变吗?

最新更新