錯誤我對Scala中的一個可調整大小的數組下面的類定義:添加@specialized標記導致「價值不是其成員」在斯卡拉
class ResizeableArray[T: Manifest](initialCapacity: Int) {
private var capacity = initialCapacity
private var arr = Array.ofDim[T](capacity)
}
這個定義工作正常,但是當我添加@specialized(Int)
專攻對於基本類型Int
,我得到以下奇怪的錯誤:
class ResizeableArray[@specialized(Int) T: Manifest](initialCapacity: Int) {
private var capacity = initialCapacity
private var arr = Array.ofDim[T](capacity)
}
<console>:15: error: value capacity is not a member of ResizeableArray$mcI$sp
private var arr = Array.ofDim[T](capacity)
有人能向我解釋這是怎麼回事呢?我正在使用Scala 2.12。
我也注意到,通過刪除私人,錯誤消息消失,但無法弄清楚爲什麼。你說這個數組沒有專門化,你的意思是說,對於原始變體,我沒有得到Java [等於]的等價物,它仍然是Object [capacity]? – Wickoo