Java SerializableEnumeration也不例外

Java SerializableEnumeration也不例外,java,enumeration,Java,Enumeration,我有一个SerializableEnumeration,我正在尝试向该SerializableEnumeration中添加向量元素。 下面是代码 if(objTempVector !=null) { CommonUtils.log("objTempVector:::::::::::::::::::::: objTempVector not null::::"); try{

我有一个SerializableEnumeration,我正在尝试向该SerializableEnumeration中添加向量元素。 下面是代码

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。请确认这不是你拿到的案子伙计