Java一个线程中传递数组时抛出空指针错误,疑似数组没传进来?多谢

Java一个线程中传递数组时抛出空指针异常,疑似数组没传进来?求助,谢谢!本帖最后由 stshow 于 2013-01-01 1

Java一个线程中传递数组时抛出空指针异常,疑似数组没传进来?求助,谢谢!
本帖最后由 stshow 于 2013-01-01 18:07:53 编辑 在写一个排序算法演示程序

先在主窗体中的Listener中调用engine:

private class StartListener implements ActionListener{
                public void actionPerformed(ActionEvent e){

                        
                        int[] unsort=UnsortGenerator();  //函数返回给unsort一个数组
                        
                        
                        engine.setArray(unsort);
                        engine.setAlgorithm(getAlgorithm());
                        engine.setSleepTime(jslSpeed.getValue()*50);
                        engine.setHistogram(histogram);  //Histogram是用来画柱状图的
                        engine.run();
                }
        }


然后在Engine中:
private SelectionSort selectionSort=new SelectionSort();
...
if (thread != null && thread.getState() != Thread.State.TERMINATED)
                                return;
                        
                        thread=new Thread(selectionSort);
                        selectionSort.setArray(unsort);
                        thread.start();

在SelectionSort中:
public class SelectionSort implements Runnable{
        private int[] unsort;
        private Histogram histogram;
        private int sleepTime;
        
        public void run(){
                selectionSort();
        }

        public void setArray(int[] unsort){


                this.unsort=unsort;
        }
        
        private void selectionSort(){
                
                int key=0;
                int count=0;
                while(count<unsort.length-1){
                        for(int i=key+1;i<unsort.length;i++){
                                if(unsort[key]>unsort[i])
                                        key=i;
                        }       
                        int temp=unsort[count];
                        unsort[count]=unsort[key];
                        unsort[key]=temp;
                        
                        count++;
                        key=count;
                        
                        for(int i=0;i<unsort.length;i++)
                                System.out.printf("%d ",unsort[i]);
                        System.out.print('\n');//这里可以输出正常数组

                        histogram.showHistogram(unsort);//这里会抛出异常

                        try {
                                Thread.sleep(sleepTime);
                        } catch (Exception ex) {


                                ex.printStackTrace();
                        }
                }
        }
}



Java一个线程中传递数组时抛出空指针错误,疑似数组没传进来?多谢

请问这段代码哪里有问题?如何修改?
提前感谢! java thread exception
[解决办法]
引用:
引用:异常中第36行在你贴的代码中是第多少行?

最后一段代码第34行标住的地方

sorry没注意看注释,按异常来看应该是histogram这个为null了,与数组无关,如果是数组,那异常应该在showHistogram这个方法中。