私はJava Class [_](ScalaのJavaリフレクションのコンテキストで)でScalaパターンマッチングを使用しようとしていますが、予期しないエラーが発生しています。なぜこれが起こっている以下は、場合jLongクラス[_]タイプのパターンマッチング?
def foo[T](paramType: Class[_]): Unit = {
val jInteger = classOf[java.lang.Integer]
val jLong = classOf[java.lang.Long]
paramType match {
case jInteger => println("int")
case jLong => println("long")
}
}
任意のアイデアを持つ行の「到達不能コード」を与えますか?あなたのコードで
scala> def foo[T](paramType: Class[_]): Unit = {
| val jInteger = classOf[java.lang.Integer]
| val jLong = classOf[java.lang.Long]
| paramType match {
| case `jInteger` => println("int")
| case `jLong` => println("long")
| }
| }
foo: [T](paramType: Class[_])Unit
scala> foo(classOf[java.lang.Integer])
int
第一のパターンでjInteger
が新しいvariable-です:
バッククォート大丈夫ですが私より優れたソリューションです:) – JaimeJorge
すごいです!多くのありがとう、トラビス。 – alphageek