Toshiyuki Takahashi
@tototoshi
List("1", "2", "3").asInstanceOf[Array[Int]].apply(1) だと ClassCastException で ….asInstanceOf[Array[_]].apply(1) だと MatchError になるのわからない。
2013-11-16 21:57:46
Kenji Yoshida
@xuwei_k
@tototoshi 「Array[_]型にキャストする」という操作をJVMのバイトコードにできないという感じだろうか。List("1", "2", "3").asInstanceOf[Array[_]]だけやると、エラーにさえならない(つまり、この時点では実質なにもしてない?)
2013-11-16 22:10:15
Toshiyuki Takahashi
@tototoshi
@xuwei_k やっぱり望まれる動きではない感じですか。List("1", "2", "3").asInstanceOf[Array[_]] が res0: Array[_] = List(1, 2, 3) とかなっちゃうし。
2013-11-16 22:14:16
Kenji Yoshida
@xuwei_k
@tototoshi そもそもJavaだとArray[AnyRef]へキャストなら可能だけど、Array[_]にキャストって不可能なはず(?)だし、あまり使い道なさそうだしArray[_]へのキャスト禁止でもいいような
2013-11-16 22:18:01
Kenji Yoshida
@xuwei_k
@tototoshi ①Array[_]型へキャストは実質なにもしない(できない)②Array[_]型のapply呼び出しは普通に呼べないので、これ https://t.co/UWHHXsRX7R が呼ばれる③この中ではArray以外を考慮してないので、MatchError発生
2013-11-16 22:30:52