繁体   English   中英

Scala数组和参数化类型

[英]Scala arrays and parameterized types

我正在尝试定义一个采用参数化类型T的泛型类,然后在类中使用Array定义中的类型。 我写了下面的内容,我认为它似乎应该有效

class MyClass[T] {

  val myarr:Array[T] = new Array[T](10)

}

但编译器抱怨如下

  • 找不到元素类型T的类清单
  • value newArray不是Null的成员

任何人都知道这里发生了什么,不满意的是什么?

编译器需要知道如何实例化类型为T的东西。在通过类型擦除处理泛型的传统Java方法中,这是不能合理地完成的; 编译器只是说,“嘿,我不知道T是什么,所以我不觉得让你像那样实例化T一样。” 然而,在Scala中,有一个词汇:清单。 为了包含T的清单,只需将该代码的第一行更改为

class MyClass[T : Manifest] {

而已。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM