我得到,线程“main”java.lang.NullPointerException错误的异常。我的代码出了什么问题?

时间:2015-11-30 17:35:53

标签: java

这是显示错误的类。 我已经注释了第245行,其中netbeans说:取消引用可能的空指针。如果我没有将endHours初始化为null,它也会出错。当我打印endHour时,它会清楚地返回一个值。但是当我尝试将endHour放到数组endHours

时,我得到了这个错误
public List getRanges(String type) throws NullPointerException, FileNotFoundException, IOException{
    List endHours = null;


    String fileName="";
    if(type.equals("tcp")){
        fileName="tcprange";
    }else if(type.equals("udp")){
        fileName="udprange";
    }

    String line = null;

    try {

        FileReader fileReader=new FileReader("conf/"+fileName+".txt");
        BufferedReader bufferedReader=new BufferedReader(fileReader);
        int i=0;
        HashMap tempEndHours=new HashMap();
        while((line = bufferedReader.readLine()) != null) {
            int endHour=0;
            String[] split=line.split("\t");
            endHour=Integer.parseInt(split[1]);
            if(!tempEndHours.containsKey(endHour)){
                tempEndHours.put(tempEndHours,i);
                //System.out.println(endHour);
                endHours.add(i,endHour);// ** line 245
            }
            //System.out.println(endHour);

            i++;

        }
    }catch(FileNotFoundException ex) {
        System.out.println("Unable to open file '"+"conf/"+type+".txt"+ "'");                
    }

    //Collections.sort(endHours);
    return endHours;
}

2 个答案:

答案 0 :(得分:0)

可能是,在您的endHour中,您获得的是空值。你的执行添加操作就这样,你得到java.lang.NullPointerException,检查是否为空。并给我们完整的异常堆栈跟踪。

答案 1 :(得分:0)

您需要实例化endHours

public List<Integer> getRanges(String type) throws NullPointerException, FileNotFoundException, IOException{
    List<Integer> endHours = new ArrayList<Integer>();