加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala数组和参数化类型

发布时间:2020-12-16 09:52:39 所属栏目:安全 来源:网络整理
导读:我正在尝试定义一个采用参数化类型T的泛型类,然后在类中使用Array定义中的类型.我写了下面的内容,我认为它似乎应该有效 class MyClass[T] { val myarr:Array[T] = new Array[T](10)} 但编译器抱怨如下 找不到元素类型T的类清单 value newArray不是Null的成员
我正在尝试定义一个采用参数化类型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] {

而已.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读