任意の Java/Scala タイプの入力を引数として受け取る関数があります。
def foo(arbitraryInput: Object): Option[Object] = {
arbitraryInput match {
case map: Map[Object, Object] => map.get("foo")
// ...
case _ => None
}
}
パターンに問題があり: Map[Object, Object]
ます:
と言うと
case map : Map[Object, Object]
、 という警告が表示されnon-variable type argument is unchecked
ます。私が言うと、コンパイラが型を見つけたが、探していたことを示す
case map : Map[_, _]
エラーが表示されます。map.get
_
Object
case map : Map
Map が型引数を必要としているとコンパイラが不平を言うとしたら
このように一致させて、コンパイラに「ねえ、実行時に型情報が失われることはわかっています。Object
大丈夫ですMap[Any, Any]
」と伝えることは可能ですか?