在使用Java的OOP中,我是一个新手,在这个社区的帮助下,我正在学习。

我已经构建了一个程序,该程序使用一个对象重复执行一项任务,该任务一遍又一遍地从excel工作表中读取并从中提取数据。

我想知道一次又一次初始化此任务的最佳实践是什么,这样我就不会在数组和其他变量错误上​​获得越界索引?

这是我用来刷新gui(以及一遍又一遍地从文件中读取)的线程代码。如您所见,它正在从另一个类中调用某些方法。调用此方法时-局部变量和索引数组已经保存了先前迭代中的一些数据:

    public void check() {
        Thread check = new Thread() {
            public void run() {
                for (;;) {
                    EventQueue.invokeLater(new Runnable() {
                        public void run() {
                            // Update GUI here on EventQueue.

                            try {
                                Task.readTasks();
                            } catch (InvalidFormatException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            } catch (IOException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                        label.setText("Next Task Is: " + Task.printNextTask);
                        }
                    });

                    try {
                        Thread.sleep(5000);
                    } catch (InterruptedException ie) {
                        break;
                    }
                    if (killcheck)
                        break;

                }
            }
        };
        check.start();
    }

    public void stopChecking() {
        killcheck = true;
    }
}

最佳答案

您的问题很笼统,所以我的答案恐怕也很笼统。为避免ArrayIndexOutOfBoundsExceptions,请在数组和for-each对象上尽可能使用简洁的Iterable语法。

也许您还会发现对工作队列问题的this answer有用。

关于java - 一遍又一遍地初始化重复任务的最佳实践是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9779570/

10-10 16:20