0
マップから値を抽出するコードがあります。 :タイプとクラスのタグを持っていても、 "抽象タイプTのタイプパターン...イライラで消去されているためチェックが外されています"
type CsvRow = Map[String, Any]
と抽出クラス:
class CsvExtractor(row: CsvRow) extends Extractor {
def get[T: TypeTag: ClassTag](k: String): T = getOption[T](k).get
def getOption[T: TypeTag: ClassTag](k: String): Option[T] = {
row(k) match {
case v: Some[T] => v
case None => None
}
}
}
コンパイラは私にこの警告与える:
[warn] /Users/axue/workspace/events/schema-kontrol/src/main/scala/com/lumoslabs/schemakontrol/core/extractor/CsvExtractor.scala:12: abstract type T in type pattern Some[T] is unchecked since it is eliminated by erasure
[warn] case v: Some[T] => v
[warn] ^
をしかしべきClassTagとTypeTagはその型情報が存在することを保証していませんか?