2017-06-05 126 views
0

我曾嘗試使用WrappedArray和空初始化轉換陣列WrappedArray

var classes:WrappedArray [String]= null 
var classe = ENTEleveClasses.apply(0) 
     if(!classe.isEmpty()) { 
      var cls = classe.split(",") 
      for(c <- cls){ 
      classes = classes :+ c // the error 
      } 
      classes 
     }else ENTEleveClasses 

錯誤:

Caused by: java.lang.NullPointerException 
    at comptesInvites.EleveENT$$anonfun$1.apply(EleveENT.scala:19) 
    at comptesInvites.EleveENT$$anonfun$1.apply(EleveENT.scala:16) 
    ... 16 more 

當我添加一個WrappedArray發生錯誤

感謝

元素

回答

1

您應該總是儘量避免使用null來初始化變量,因爲它會導致衆多的nullpointerExceptionscan even damage a system as a whole

你應該初始化WrappedArrayclasses作爲

var classes:mutable.WrappedArray [String]= mutable.WrappedArray.empty[String] 
+0

謝謝@Ramesh,我刪除可變因此,這個變量變爲VAR類:WrappedArray [字符串] = WrappedArray.empty [字符串] –

+0

我很高興,它幫助你@MounirHamdane :)一個upvote也會幫助我:) –

+0

「甚至可以破壞整個系統。」? –

0

when I add an element a WrappedArray an Error occurred

您並未將元素添加到WrappedArray中,而是將元素添加到null值,這實際上是不可能的,並生成NPE。

將元素添加到WrappedArray,你必須真正提供一個,所以不是var classes:WrappedArray [String]= null,使用var classes:WrappedArray [String]= new WrappedArray()(我沒有真正知道什麼是WrappedArray的構造函數,你可能要改變這個!)