2014-02-19 70 views
0

錯誤我有一個類定義如下:Scala的:在排序

class VocabWord(cn1: Int = 0, word1: String = null) { 
    var cn = cn1 
    var word = word1   
} 

,並且還存在着如下的數組:

var vocab = new Array[VocabWord](100) 

現在,當我執行這樣下面的操作:

vocab = vocab.sortWith((x, y) => x.cn < y.cn) 

我得到一個空指針異常。

+2

**請**使用CamelCase作爲類名稱。 'vocab_word'是一個眼睛,約定是寫'VocabWord'。在Scala中'_'已經太重了! –

回答

3

要初始化與100 null

var vocab = new Array[VocabWord](100) // Array(null, null, null.....) 

陣列無法應用該方法cnnull

var vocab = Array[VocabWord](new VocabWord(100), new VocabWord(3)) 
vocab.sortWith((x, y) => x.cn < y.cn) 
// Array([email protected], [email protected]) 
1

如果你想創建一個新的數組,您可以使用Array.init

val vocab = Array.fill[vocab_word](100)(new vocab_word) 

目前您正在創建一個包含100個空引用的數組。