パターンマッチング私は配列を持っているときのように:Scalaの配列[タイプ]エラー
def myMethod(mySeq: Seq[SomeType]) = mySeq match {
case Nil => // do someting
case _ => // do something else (error happens here)
}
私はこのコードを実行すると、私は次のエラーを取得:私はこのエラーを見たことがない
a type was inferred to be `Any`; this may indicate a programming error
をこれまで。私はScala 2.11を使っています。私はこのエラーが何であるかについては断然ですか?すべての手がかりは?
編集:ここで私が質問の下に持っている実際のメソッドです:
[warn] Scala version was updated by one of library dependencies:
[warn] * org.scala-lang:scala-library:(2.11.1, 2.11.7, 2.11.2, 2.11.6, 2.11.5, 2.11.0) -> 2.11.8
[warn] To force scalaVersion, add the following:
[warn] ivyScala := ivyScala.value map { _.copy(overrideScalaVersion = true) }
[warn] Run 'evicted' to see detailed eviction warnings
が、私はまだ、このエラーを取得:ここ
def publishMessages(mySeq: Seq[MyData]): Future[Continue] = Future {
if (mySeq.nonEmpty) {
logger.info(s"sending a total of ${mySeq.length} for " +
s"metric ${mySeq.head.metric} messages to kafka topic ${producerConfig.topic}")
val jsonMessage = Json.stringify(Json.toJson(mySeq))
val recordMetaDataF = Future {
scala.concurrent.blocking {
val recordMetaDataJavaFut = producer.send(
new ProducerRecord[String, String](producerConfig.topic, jsonMessage)
)
// if we don't make it to Kafka within 3 seconds, we timeout
recordMetaDataJavaFut.get(3, TimeUnit.SECONDS)
}
}
recordMetaDataF.recover {
case NonFatal(ex) =>
logger.error("Exception while persisting data-points to kafka", ex)
}
Continue
}
else {
logger.debug(s"skip persisting to kafka topic ${producerConfig.topic} as no " +
" data-points were given to persist")
Continue
}
}
は私がコンパイル時に参照警告です
a type was inferred to be `Any`; this may indicate a programming error
何をしようとしていますか? –
なぜそれが重要なのでしょうか?両方のパスは、正しい型と同じ型を返します。 IntelliJはこの方法に不平を言うことはありません! – sparkr
あなたが投稿したコードは空白のコメントで何かを推論する必要はないので、エラーは発生しません。 –