2

任意の 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 : MapMap が型引数を必要としているとコンパイラが不平を言うとしたら

このように一致させて、コンパイラに「ねえ、実行時に型情報が失われることはわかっています。Object大丈夫ですMap[Any, Any]」と伝えることは可能ですか?

4

1 に答える 1