Java SerializableEnumeration也不例外
我有一个SerializableEnumeration,我正在尝试向该SerializableEnumeration中添加向量元素。 下面是代码Java SerializableEnumeration也不例外,java,enumeration,Java,Enumeration,我有一个SerializableEnumeration,我正在尝试向该SerializableEnumeration中添加向量元素。 下面是代码 if(objTempVector !=null) { CommonUtils.log("objTempVector:::::::::::::::::::::: objTempVector not null::::"); try{
if(objTempVector !=null)
{
CommonUtils.log("objTempVector:::::::::::::::::::::: objTempVector not null::::");
try{
hlpOrder.mOrderDetail = new SerializableEnumeration(objTempVector);
}
catch(NullPointerException ex)
{
CommonUtils.log("Exception in SerializableEnumeration::::::::::::::::::::::" + ex.toString());
}
}
但即使向量不是null,上面的代码也会生成null指针异常
错误日志:SerializableEnumeration中的异常:java.lang.NullPointerException
这是SerializableEnumeration的方法
public SerializableEnumeration(Vector data) {
if (data == null) {
size = 0;
} else {
this.data = data.toArray();
this.size = data.size();
}
i = 0;
}
import java.io.Serializable;
import java.util.Enumeration;
import java.util.NoSuchElementException;
import java.util.Vector;
public class SerializableEnumeration implements Enumeration, Serializable {
private static final long serialVersionUID = 1L;
private Object[] data = null;
private int i;
private int size;
public SerializableEnumeration(Vector data) {
if (data == null) {
size = 0;
} else {
this.data = data.toArray();
this.size = data.size();
}
i = 0;
}
public boolean hasMoreElements() {
return ((size > 0 ) ? true : false);
}
public Object nextElement() throws NoSuchElementException {
try {
Object element = data[i];
++i;
--size;
return element;
} catch (Exception e) {
throw new NoSuchElementException();
}
}
public int getSize() {
return size;
}
public void reset(){
if(data==null){
size=0;
}else{
size=data.length;
i=0;
}
}
}
请帮我解决这个问题
这是SerializableEnumeration的整个类
public SerializableEnumeration(Vector data) {
if (data == null) {
size = 0;
} else {
this.data = data.toArray();
this.size = data.size();
}
i = 0;
}
import java.io.Serializable;
import java.util.Enumeration;
import java.util.NoSuchElementException;
import java.util.Vector;
public class SerializableEnumeration implements Enumeration, Serializable {
private static final long serialVersionUID = 1L;
private Object[] data = null;
private int i;
private int size;
public SerializableEnumeration(Vector data) {
if (data == null) {
size = 0;
} else {
this.data = data.toArray();
this.size = data.size();
}
i = 0;
}
public boolean hasMoreElements() {
return ((size > 0 ) ? true : false);
}
public Object nextElement() throws NoSuchElementException {
try {
Object element = data[i];
++i;
--size;
return element;
} catch (Exception e) {
throw new NoSuchElementException();
}
}
public int getSize() {
return size;
}
public void reset(){
if(data==null){
size=0;
}else{
size=data.length;
i=0;
}
}
}
我在JSP文件中使用变量,当我尝试使用枚举时,我得到以下错误:
您能告诉我们您得到的全部错误吗?您是否检查了
hlpOrder
是否为空?在那一行上放一个断点,检查是什么让你认为错误来自SerializableEnumeration?@Suman,我仍然认为hlpOrder
可以是空的。老实说,我看不出在给定这段代码的情况下还有什么可以为null,以及SerializableEnumeration构造函数中发生了什么。我认为hlpOrder
是null,当您执行hlpOrder.mOrderDetail时,就像您执行null.mOrderDetail一样,因此抛出NPE。请确认这不是你拿到的案子伙计