我尝试使用包装片并通过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()
(我实际上不确定包装的构造函数是什么,您可能必须更改此问题!(