Scala 选项内部存在类型与类型不匹配

Scala 选项内部存在类型与类型不匹配,scala,apache-spark,Scala,Apache Spark,我试图将一组类传递给SparkConf.registerKryoClasses方法,该方法具有以下签名: registerKryoClasses: Array[Class[_]]) => SparkConf 由于我可能有需要注册的类,也可能没有需要注册的类,所以我将其包装在一个选项中,并尝试了以下方法(简化版本): IntelliJ告诉我在cs上存在类型不匹配,然后列出了预期类型和实际类型。它们是一样的 我在这里遗漏了什么?以下内容对我来说很好 def someClass(app: St

我试图将一组类传递给
SparkConf.registerKryoClasses
方法,该方法具有以下签名:

registerKryoClasses: Array[Class[_]]) => SparkConf
由于我可能有需要注册的类,也可能没有需要注册的类,所以我将其包装在一个
选项中
,并尝试了以下方法(简化版本):

IntelliJ告诉我在
cs
上存在类型不匹配,然后列出了预期类型和实际类型。它们是一样的


我在这里遗漏了什么?

以下内容对我来说很好

def someClass(app: String, classes: Option[Array[Class[Any]]]): SparkConf = {
  val conf = classes match {
    case Some(cs) ⇒ new SparkConf()
      .setAppName(app)
      .registerKryoClasses(cs)
    case None ⇒ new SparkConf()
      .setAppName(app)
    // more stuff
  }

  conf
}

val conf = someClass("lol", Some(Array(classOf[String], classOf[Int])))
//org.apache.spark.SparkConf = org.apache.spark.SparkConf@685d92cf

我知道这个陈词滥调,但你试过重新启动它吗?我偶尔会在PyCharm和IntelliJ上遇到类似的问题,有时会有帮助。其他时候,我必须使用“dumber”IDE手动编译代码,以便IntelliJ识别代码确实正确。复制粘贴此代码对我来说很好。不要相信IntelliJ在编辑器中显示的错误,请先检查它是否真的编译。为什么要尝试创建
SomeClass
,为什么不为它定义一个函数?@SarveshKumarSingh,因为在那段代码之后会发生很多事情,我必须传递实例,因为应用程序的其余部分必须“提供”相同的SparkContext实例详细信息。
def someClass(app: String, classes: Option[Array[Class[Any]]]): SparkConf = {
  val conf = classes match {
    case Some(cs) ⇒ new SparkConf()
      .setAppName(app)
      .registerKryoClasses(cs)
    case None ⇒ new SparkConf()
      .setAppName(app)
    // more stuff
  }

  conf
}

val conf = someClass("lol", Some(Array(classOf[String], classOf[Int])))
//org.apache.spark.SparkConf = org.apache.spark.SparkConf@685d92cf