将阵列转换为包裹



我尝试使用包装片并通过null

初始化它
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

当我添加一个元素时,发生了错误

谢谢

您应该始终尝试避免使用null初始化变量,因为它会导致大量nullpointerExceptions,甚至可能损坏整个系统。

您应该将WrappedArray classes初始化为

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

when I add an element a WrappedArray an Error occurred

您不是在包装中添加元素,而是在零值中添加一个元素,这确实是不可能的,并且会生成NPE。

要在包装中添加一个元素,您实际上必须提供一个元素,因此,不要使用var classes:WrappedArray [String]= null,而是使用var classes:WrappedArray [String]= new WrappedArray()(我实际上不确定包装的构造函数是什么,您可能必须更改此问题!(

最新更新