2017-06-05 124 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的构造函数,你可能要改变这个!)