将数组转换为WrappedArray

时间:2017-06-05 15:35:34

标签: scala

我曾尝试使用WrappedArray并将其初始化为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

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

由于

2 个答案:

答案 0 :(得分:1)

您应该始终尽量避免使用null初始化变量,因为它会导致众多nullpointerExceptionscan even damage a system as a whole

您应该将WrappedArray classes初始化为

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

答案 1 :(得分: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的构造函数是什么,可能要改变这个!)