マップ内の2番目のタイプのパラメータのマニフェストを取得するにはどうすればよいですか?
例えば、次の関数:マップ内の値タイプのマニフェストには、タイプNothingが与えられます。
def asMap[T <: AnyRef]()(implicit m : Manifest[T]) : Map[Int, T] = {
println(m) // Nothing
...
}
:
:暗黙のmパラメータは、アレイに対応を行うNothing
に結合さ
val map : Map[Int,String] = asMap()
def asArray[T <: AnyRef]()(implicit m : Manifest[T]) : Array[T] = {
println(m) // java.lang.String
...
}
のように呼び出します:暗黙のM-パラメータがjava.lang.String
ににバインドされている
val arr : Array[String] = asArray()
から
を予想通り誰もが、説明していただけますか?
Scalaは最も制限の厳しいタイプ(つまり、Nothing)を選択し、必要な場合にのみ拡大するためです。 –
だから、実際のタイプを手に入れることは可能ですか? – Harald
@Harald - val map = asMap [String] 'はあなたが望むことをします。または、実際に作成されたマップを渡すことができます。ここでは、使用するタイプの選択肢がなくなります。 –