match { case p: List[Int] => println("int")第一个关于Array的代码块编译时没有警告,并输出"string“;第二个关于List的代码块编译时出现了与类型擦除相关的警告,也输出了"string”。我对JVM中的类型擦除有所了解。在运行时,JVM不能真正知道容器
在Scala上,一个悲哀的事实是,如果你实例化一个ListInt,你可以验证你的实例是一个列表,你可以验证它的任何单个元素都是一个Int,但不能验证它是否是一个ListInt,因为很容易验证:scala> List(1,2,3) match {
| case l : List[String] => println("A list
我希望有一个方法getInstance,它接受一个字符串值并返回对象的一个实例,在方法签名中定义为泛型。def getInstance[T](dataStr: String): Option[T] = { case typeOf[String] => SomedataStr.toBoolean) // if type of T is Boolean
case _ => throw new NoSuchElementExcept