日期:2014-05-20  浏览次数:20821 次

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){