gpt4 book ai didi

scala - 方法 flatMap 没有类型参数

转载 作者:行者123 更新时间:2023-12-02 01:29:11 26 4
gpt4 key购买 nike

我不知道为什么下面的代码不能编译,这是错误信息:

Error:(29, 7) no type parameters for method flatMap: (f: String => Option[B])Option[B] exist so that it can be applied to arguments (String => Some[Class[?0]] forSome { type ?0 <: org.apache.hadoop.io.compress.CompressionCodec })
--- because ---
argument expression's type is not compatible with formal parameter type; found : String => Some[Class[?0]] forSome { type ?0 <: org.apache.hadoop.io.compress.CompressionCodec }
required: String => Option[?B]
a.flatMap(codecClassName => {
^

和代码

  def f(a: Option[String]): Unit = {
a.flatMap(codecClassName => {
val codecFactory = new CompressionCodecFactory(new Configuration())
val codecClass = codecFactory.getCodecClassByName(codecClassName)
if (codecClass == null) {
throw new RuntimeException("Unknown or not supported codec:" + codecClassName)
}
Some(codecClass)
})
}

最佳答案

这似乎与 getClass 和 classOf 没有返回完全相同的东西有关。参见 Scala equivalent of Java java.lang.Class<T> Object了解更多详情。

四处寻找我遇到的解决方法 Scala Getting class type from string representation .

那么怎么样:

val codecClass = Manifest.classType(codecFactory.getCodecClassByName(codecClassName))

关于scala - 方法 flatMap 没有类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35148384/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com